浅谈sessionStorage 和 localStorage
sessionStorage 和 localStorage 作为本地储存他们可以用来代替cookie的一部分存储功能,他们比cookie存储量更大。比较实用。
本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。二者用法完全相同。
HTML5本地存储只能存字符串,任何格式存储的时候都会被自动转为字符串,所以读取的时候,需要自己进行类型的转换。
保存数据:sessionStorage.setItem(Key, value);
读取数据:sessionStorage.getItem(Key);
删除key :sessionStorage.removeItem('key_one');
删除所有key/value :sessionStorage.clear();
sessionStorage只能存储字符串,不能直接存储数组和对象。
先以字符串形式存入本地存储:stringify
然后以对象形式取出数据:parse
示例:
var obj = {'name':'jack','age':'27'};
var str = JSON.stringify(obj);
//存入
sessionStorage.obj = str;
//读取
str = sessionStorage.obj;
//重新转换对象
obj = JSON.parse(str);
判断浏览器是否支持localStorage
f(window.localStorage){
alert("支持localStorage"); } else { alert("暂不支持localStorage"); } //或者 if(typeof window.localStorage == 'undefined'){ alert("暂不支持localStorage") }
其他操作方法 . 和 []
var parameter = window.localStorage;
parameter.keyOne = 'hand';
parameter['keyTwo'] = 'some';
console.log(parameter.keyOne);
console.log(parameter['keyTwo']);
也可以用这种存储方式
key() 和 length 属性实现遍历
var str = window.localStorage;
for(var i = 0;i < str.length;i++){
var keying = str.key(i);
var quantity = str.getItem(keying);
console.log(keying + '=' + quantity);
}