HTML
1 .localStorage,sessionSorage 他们的区别主要是生存期
2 .使用方法:主要是数组,对象转为字符串存储在电脑里面,然后使用的时候在转回来
localStorage.setItem("b","isaac");//设置b为"isaac"
var b = localStorage.getItem("b");//获取b的值,为"isaac"
var a = localStorage.key(0); // 获取第0个数据项的键名,此处即为“b”
localStorage.removeItem("b");//清除c的值
localStorage.clear();//清除当前域名下的所有localstorage数据
3 .作用域
1 .localStorage:允许在相同协议,相同主机名,端口外就能修改同一份localSorage数据
2 .sessionSorage:除了以上要求,还需要在同一窗口下。
4 .生存期
1 .localSorage理论上是永久有效的,不清空就不会消失,即时保存的数据超出了浏览器所规定的大小,也不会把旧的数据清空,而是只会报错
2 .移动设备上的浏览器或者Native App用到的WebView里,localStorage都是不可靠的,可能会被各种原因清空
3 .sessionStorage:只要关闭浏览器就会被清空,由于sessionStorage的生存周期太短,因此应用场景很有限,但是从另一方面来看,不容易出现异常状况,比较可靠
4 .
5 .数据结构
1 .标准的key-value数据类型
2 .只要能以某种编码方式把想要存储进localstorage的对象转化为字符串,就能轻松支持。比如页面的代码。把对象转为json字符串,把图片转换成DateUrl
3 .key是唯一的,重复对一个键赋值的话,会覆盖上次的值
6 .过期时间:自己设置在存入数据的时候加入当前时间戳,但后在取出数据的时候对这个进行检查,然后对比时间是否过期,然后进行
7 .容量限制:5M
8 .域名限制:无法进行跨域,也无法让子域名继承父域名的localStorage数据
9 .异常处理:try/catch
10 .测试浏览器是否支持localStorage:虽然一般的浏览器使用window.localstorage可以检测是否支持,但是还是会出现无法setItem这样低级的bug,所以
11 .ios设备上无法重复setItem()
12 .另外,在Iphone 上设置setItem有时会出现报错,这个时候需要先removeItem,然后在设置setItem
13 .store.js:就是兼容做的比较好,封装了几个api。不过如果在实际使用过程中,肯定也能开发出来类似的方法,可以看一下他是怎么检测到浏览器的版本的。
14 .还有就是这个库时不npm install 然后使用的。