1.使用sessionStorage、localStorage存储数组与对象

localStorage对象是HTML5的客户端存储持久化数据的方案。为了能访问到同一个localStorage对象,页面必须来自同一个域名(子域名无效),使用同一种协议,在同一个端口上。

过期策略:localstorage永久存储,不过期,除非手动删除,sessionstorage在重启浏览器、关闭页面或新开页面时失效。

localStorage是Storage类型的实例。有以下的几种方法:

①clear():删除所有值。

②getItem(name):根据指定的名字name获取对应的值

③key(index):在指定的数字位置获取该位置的名字。

④removeItem(name):删除由name指定的名值对

⑤setItem(name,value):为指定名字设置一个对应的值

localStorage对象可以通过点号调用这些方法。

例:使用方法来存储数据

localStorage.setItem(“name”,“songyuhua”);//这样就用localStorage存储了一个名字为name的数据,数据的内容为 “songyuhua"

使用方法来读取数据

localStorage.getItem(“name”);//这样就读取了名字为“name”的数据的值。

有时候,我们需要将数据存储到sessionStorage和localStorage中,这样做的好处有:

1 缓存数据
2 减少对内存的占用

但是,storage只能存储字符串的数据,对于JS中常用的数组或对象却不能直接存储。
它能保存更大的数据(IE8上是10MB,Chrome是5MB),同时保存的数据不会再发送给服务器,避免带宽浪费。


单个存储

localStorage存储方法(sessionStorage类似)

localStorage.name =’vanida;
localStorage[“name”]=’vanida’;
localStorage.setItem(“name”,”vanida”);

//这三种设置值方式是一样的;
localStorage获取值方法

var name = localStorage[“name”]
var name= localStorage.name
var name= localStorage.getItem(“name”);

//这三种获取值方式是一样的;
localStorage清除特定值方法

//清除name的值
localStorage.removeItem(“name”);
localStorage.name=”;

localStorage清除所有值方法

localStorage.clear()

localStorage只能存储字符串,如果需要存储对象,首先要转化为字符串。利用JSON.stringify();


多个存储

可以通过JSON对象提供的parse和stringify将其他数据类型转化成字符串,再存储到storage中就可以了。请看下面的代码。

var obj = { name:'Jim' };var str = JSON.stringify(obj);//存入sessionStorage.obj = str;//读取str = sessionStorage.obj;//重新转换为对象obj = JSON.parse(str);

localStorage也一样,只是和sessionStorage的存储时间不一样。

需要注意的是,JS中的数组本质上也是对象类型,所以上面的代码对数组也是适用的。

var person = {name:”vanida”,”sex”:”girl”,”age”:25}; localStorage.setItem(“person”,JSON.stringify(person)); person = JSON.parse(localStorage.getItem(“person”));// 注意:JSON.stringify()中不要忘了“i”,stringify而不是stringfy!
// 然后取出person的对象你可以用JSON.parse();

2.Cookie

这个恐怕是最常见也是用得最多的技术了,也是比较古老的技术了。COOKIE优点很多,使用起来很方便
但它的缺点也很多:
比如跨域访问问题;无法保存太大的数据(最大仅为4KB);本地保存的数据会发送给服务器,浪费带宽 等等;

代码如下:

function SetCookie(name, value) {var key = '';var Days = 2;var exp = new Date();var domain = "";exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);if (key == null || key == "") {document.cookie = name + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/;domain=" + domain + ";";}else {var nameValue = GetCookie(name);if (nameValue == "") {document.cookie = name + "=" + key + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/;domain=" + domain + ";";}else {var keyValue = getCookie(name, key);if (keyValue != "") {nameValue = nameValue.replace(key + "=" + keyValue, key + "=" + encodeURI(value));document.cookie = name + "=" + nameValue + ";expires=" + exp.toGMTString() + ";path=/;domain=" + domain + ";";}else {document.cookie = name + "=" + nameValue + "&" + key + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/;" + domain + ";";}}}}function GetCookie(name) {var nameValue = "";var key = "";var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");if (arr = document.cookie.match(reg)) {nameValue = decodeURI(arr[2]);}if (key != null && key != "") {reg = new RegExp("(^| |&)" + key + "=([^(;|&|=)]*)(&|$)");if (arr = nameValue.match(reg)) {return decodeURI(arr[2]);}else return "";}else {return nameValue;}}

【JS】JS 缓存数据的方法相关推荐

  1. ios 往 Library的cache目录下 存放缓存数据的方法

    // 写缓存 + (void)writeLocalCacheData:(NSData *)data withKey:(NSString *)key {// 设置存储路径NSString *caches ...

  2. 关于js解析Json数据的方法

    JSON(JavaScript Object Notation, JS 对象标记JSON) 中文意思就是JavaScript对象标示方式! 我们经常会遇到ajax请求后台接口得到json数据,此时我们 ...

  3. jQuery缓存数据——仿Map

    2019独角兽企业重金招聘Python工程师标准>>> 最近在工作中遇到了这样一个情景.有些数据是从后台读取的,但是我暂时不需要展示在页面上,那怎么办呀?--缓存呀.今天我就来分享一 ...

  4. spring boot使用redis缓存数据与自动清除

    在spring boot项目中使用缓存很方便,有如下两种使用场景: 直接操作RedisTemplate缓存数据 在方法上加@Cacheable注解来缓存数据 方法1适用于缓存session.token ...

  5. JS解析json数据并将json字符串转化为数组的实现方法

    json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...

  6. html表格中绑定显示xml文档内容的简单实例,JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)...

    本文实例讲述了JS读取XML文件数据并以table形式显示数据的方法.分享给大家供大家参考,具体如下: 先看xml文件: 张秋丽 女 18 李文才 男 31 李斯文 男 22 马英 女 25 孙红雷 ...

  7. js html 处理json数据,JS中Json数据的处理和解析JSON数据的方法详解

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

  8. vue表格刷新数据_Vue.js的列表数据的同步更新方法

    这次给大家带来Vue.js的列表数据的同步更新方法,Vue.js列表数据同步更新方法的注意事项有哪些,下面就是实战案例,一起来看一下. 数组的 push(),pop(),shift(),unshift ...

  9. html js 循环取json数据,JS循环遍历JSON数据的方法

    JS循环遍历JSON数据 本文提供了 JS 循环 JSON 数据列,以及 JS 循环遍历 JSON 数据的例子,供大家学习参考. 1. json数据的列循环 var len = json.length ...

最新文章

  1. Laravel Lumen之Eloquent ORM使用速查-基础部分
  2. dovecot vsz_limit参造成foxmail、outlook等客户端工具接收邮件有时候报错
  3. python 可视化监控平台_python可视化篇之流式数据监控的实现
  4. 【HDU - 5094】 Maze (状态压缩+bfs)
  5. java 好和不好的形容词 英语怎么说_java必会的英语单词
  6. C#LeetCode刷题之#771-宝石与石头(Jewels and Stones)
  7. Elasticsearch基础(三)索引和文档操作
  8. Android自定义ListView示例,以创建不可滚动的ListView
  9. 用Eclipse创建一个spring boot(创建,并配好controller)
  10. 关于Scrapy爬虫项目运行和调试的小技巧(上篇)
  11. 对比几个空地址“订阅”的结果
  12. ZStack的VPC特性详解及实战
  13. 接待员如何向客人upsell_酒店前厅部概述-.ppt
  14. roundcube邮箱手机端_用户换了手机号码后,产品该如何应对?
  15. linux shadow文件*,Linux /etc/shadow文件详解
  16. 滞留在服务器的邮件,outlook 2010 发送邮件时莫名滞留在发件箱
  17. 【Unity面板属性扫盲】导入纹理后设置Texture Import Settings
  18. 概要设计和详细设计模板_超详细的【免试拼】铝模板设计深化配模方案 非筑名铝模板设计...
  19. 海淘thinkpad-t460p攻略
  20. zeppelin高可用部署

热门文章

  1. 图像形状及数量识别(matlab实现)
  2. 关于未名湖边的烦恼问题
  3. CSDN学习(一) -- 什么是CSDN
  4. 1002 写出这个数 (C语言实现)
  5. 深度学习(9):FastFCN论文翻译与学习
  6. 正则表达式在shell中使用的方法与案例
  7. Python学习笔记(四)----Pywin32+Pyinstaller制作windows软件
  8. 第七天 01.ssh服务 使用堡塔以及xshell等连接linux
  9. java获取当前年份(java获取当前年份后两位)
  10. Vulnhub靶机:HA_ NARAK