在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
WebStorage是HTML5中本地存储的解决方案之一,在HTML5的WebStorage概念引入之前除去IE User Data、Flash Cookie、Google Gears等看名字就不靠谱的解决方案,浏览器兼容的本地存储方案只有使用cookie。有同学可能会问,既然有了cookie本地存储,为什么还要引入WebStorage的概念? Cookie肿么了 cookie的缺陷是非常明显的 1. 数据大小:作为存储容器,cookie的大小限制在4KB左右这是非常坑爹的,尤其对于现在复杂的业务逻辑需求,4KB的容量除了存储一些配置字段还简单单值信息,对于绝大部分开发者来说真的不知指望什么了。 WebStorage WebStorage是HTML新增的本地存储解决方案之一,但并不是为了取代cookie而制定的标准,cookie作为HTTP协议的一部分用来处理客户端和服务器通信是不可或缺的,session正是依赖于实现的客户端状态保持。WebStorage的意图在于解决本来不应该cookie做,却不得不用cookie的本地存储。 复制代码 代码如下: interface Storage { readonly attribute unsigned long length; DOMString? key(unsigned long index); getter DOMString getItem(DOMString key); setter creator void setItem(DOMString key, DOMString value); deleter void removeItem(DOMString key); void clear(); }; 1、length:唯一的属性,只读,用来获取storage内的键值对数量。 WebStorage如何使用 复制代码 代码如下: var ls=localStorage; console.log(ls.length);//0 ls.setItem('name','Byron'); ls.setItem('age','24'); console.log(ls.length);//2 //遍历localStorage for(var i=0;i<ls.length;i++){ /* age : 24 name : Byron */ var key=ls.key(i); console.log(key+' : '+ls.getItem(key)); } ls.removeItem('age'); for(var i=0;i<ls.length;i++){ /* name : Byron */ var key=ls.key(i); console.log(key+' : '+ls.getItem(key)); } ls.clear();//0 console.log(ls.length); 事件 复制代码 代码如下: interface StorageEvent : Event { readonly attribute DOMString key; readonly attribute DOMString? oldValue; readonly attribute DOMString? newValue; readonly attribute DOMString url; readonly attribute Storage? storageArea; }; 1、key:键值对的键 2、oldValue:修改之前的value 3、newValue:修改之后的value 4、url:触发改动的页面url 5、StorageArea:发生改变的Storage 在index.php中定义 复制代码 代码如下: <a href="test.php" target="_blank">Test</a> 复制代码 代码如下: window.addEventListener('storage',function(e){ console.log(e.key+' is changed form '+e.oldValue+' to '+e.newValue+' by '+e.url ); console.log(e.storageArea ==localStorage); },false); localStorage.setItem('userName','Byron'); test.php 复制代码 代码如下: localStorage.setItem('userName','Casper'); 在index.php页面点击链接访问test.php时可以看到index.php的控制台输出log: 为什么比cookie好 1. 从容量上讲WebStorage一般浏览器提供5M的存储空间,用来存储视频、图片神马的不够,但对于绝大部分操作足矣 需要注意的地方
|
请发表评论