html5之前实现浏览器存储,使用cookies。
cookies的特点:包含在http请求头中,内容不能大于4KB,如果主域名中设置了某个cookies,每个子域名的访问,都会在请求头中带上该cookies(主域名污染
)。
h5存储特点:解决了4KB的大小限制,不用在请求头中带存储信息,可以使用存储数据库,跨浏览器支持。
经常使用的两个存储变量localStorage,sessionStorage.它们分别有getItem,setItem,removeItem等方法。
他们可以存数组,图片,脚本,json数据等,子域名之间不能共享数据,超出存储大小时如何处理?可以采用FIFO先进先出方式把最先的删除或者LRU(Least Recently Used 近期最少使用算法)
生命周期:localStorage除非删除才会失效,sessionStorage只要关闭浏览器就会失效。。
设置localStorage更新策略,
function set(key,data){
var curT= new Date().getTime();
localStorage.setItem(key,JSON.stringify({data:data,time:curT}));
}
function get(key,exp){
var data = localStorage.getItem(key);
var dataObj = JSON.parse(data);
if(new Date().getTime()-dataObj.time>exp){
console.log("超时");
}
else{
dataObj.data;
}
}