风火一回,一生不毁

风风火火走一回,走出一生不悔

localStorage和sessionStorage详解

前言

HTML5引入了localStorage和sessionStorage两个本地缓存对象,以解决cookie缓存容量少的问题。由于cookie每次都会随着请求被发送出去,所以数据放在cookie中将造成宽带浪费。但是本地缓存并不能取代cookie,cookie是作为http规范的一部分,是用于与服务器交互的不必可少的条件之一。


区别

localStorage:本地缓存,没有时间限制,将一直缓存在本地。
sessionStorage:会话缓存,即浏览器关闭的时候清除缓存数据。

方法

localStorage和sessionStorage具有相同的方法,具体如下(以localStorage为例):
1.设置缓存数据:localStorage.setItem(key,value);
2.获取缓存数据:localStorage.getItem(key);
3.获取全部缓存数据:localStorage.valueOf();
4.获取指定下标的key键值:localStorage.key(N);
5.删除缓存数据:localStorage.removeItem(key) ;
6.清空缓存数据:localStorage.clear();

localStorage.setItem("test","123");
localStorage.setItem("num","567");
localStorage.setItem("ber","89");
var a = localStorage.getItem("test");
console.log(a);				//123
var b = localStorage.valueOf();
console.log(b);				//Storage {ber: "89", num: "567", test: "123", length: 3}
var c = localStorage.key(1);
console.log(c);				//num
localStorage.removeItem("test");
console.log(localStorage.getItem("test"));	//null
localStorage.clear();
console.log(localStorage.length);	//0

由于localStorage和sessionStorage是js对象,所以也可以使用.key或['key']的方式来设置值或获取值。
localStorage.num = "567";
localStorage.ber = "89";
console.log(localStorage.num);
console.log(localStorage['ber']);

存储大小限制

IE 9          > 4999995 + 5 = 5000000
firefox 22.0 > 5242875 + 5 = 5242880
chrome  28.0  > 2621435 + 5 = 2621440
safari  5.1   > 2621435 + 5 = 2621440
opera   12.15 > 5M (超出则会弹出允许请求更多空间的对话框)

可参照该网页进行测试:https://arty.name/localstorage.html


阅读更多
个人分类: web前端面试总结
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭