localStorage,这是HTML5里新加的一个特性,只要是用来做本地存储的,他解决了cookie存储的空间不足的问题。
localStorage的优势和局限。
优势:
1、解决了cookie4k大小的存储空间,localStorage的存储空间为5M,和cookie一比较,简直是鸟枪对大炮。
2、localStorage可以将第一次请求的数据直接存储到本地,相当于一个5M大小的前端页面数据库,相比cookie可以节约带宽,但是这个却只有在高版本浏览器中才支持。
局限:
1、浏览器大小不统一,并且IE8以上的IE版本浏览器才支持。
2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换。
3、localStorage在浏览器的隐私模式下面是不可读取的。
4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡。
5、localStorage不能被爬虫抓取到。
localStorage的写入、修改、读取、删除。
写入:
他有三种写入方式:
var storage = window.localStorage;
storage["a"] = 1;
storage.b = 2;
storage.setItem("c", 3);
console.log(storage["a"]); // 1
console.log(storage["b"]); // 2
console.log(storage["c"]); // 3
改:
storage["a"] = 4;
console.log(storage["a"]); // 4
读取:
var storage = window.localStorage;
var a = storage.a;
var b = storage["b"];
var c = storage.getItem("c");
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
删除:
有两种方式,1:删除所有,2:删除某个
var storage = window.localStorage;
1、 storage.clear();
2、storage.removeItem("a");
其他:
一般我们会将JSON存入localStorage中,但是在localStorage会自动将localStorage转换成为字符串形式,这个时候我们可以使用**JSON.stringify()**这个方法,来将JSON转换成为JSON字符串。
例如:
var data={
name:'张三',
sex:'男',
age:'18'
};
var d=JSON.stringify(data);
storage.setItem("data",d);
console.log(storage.data);
读取之后要将JSON字符串转换成为JSON对象,使用**JSON.parse()**方法
例如:
var json=storage.getItem("data");
var jsonObj=JSON.parse(json);
console.log(jsonObj); //json
console.log(typeof jsonObj); //object
上面就是我对localStorage的一些了解,有不对的地方和更好的地方,欢迎指出。