WebStorage的使用

HTML5中的WebStorage有两种类型的API:localStorage和sessionStorage;

  localStorage在本地永久性存储数据,除非显式将其删除或清空;

  sessionStorage存储的数据只在会话期间有效,关闭浏览器则自动删除。

localStorage存数的数据是不能跨浏览器共用的,一个浏览器只能读取各自浏览器的数据,储存空间5M。

localStorage提供了几个方法:
1、存储:localStorage.setItem(key,value)

2、获取:localStorage.getItem(key)

3、删除:localStorage.removeItem(key)

4、全部清除:localStorage.clear()

5、遍历localStorage存储的key
  .length 数据总量,例:localStorage.length
  .key(index) 获取key,例:localStorage.key(index);

6、存储JSON格式数据
JSON.stringify(data) 将一个对象转换成JSON格式的数据串,返回转换后的数据串
JSON.parse(data) 将数据解析成对象,返回解析后的对象

************************************************************

var array = [0, 1, 1, 1];
//存储,IE6~7 cookie 其他浏览器HTML5本地存储
if (window.localStorage) {
    localStorage.setItem("title", array);
} else {
    Cookie.write("title", array);
}

//获取
var data = window.localStorage? localStorage.getItem("title"): Cookie.read("title"); 

 7、storage事件:当键值改变或者clear的时候,就可以触发storage事件

  当存储的storage数据发生变化时都会触发它,但是它不同于click类的事件会冒泡和能取消;

  storage改变的时候,触发这个事件会调用所有同域下其他窗口的storage事件,不过它本身触发storage即当前窗口是不会触发这个事件的(当然ie这个特例除外,它包含自己本身也会触发storage事件);

  使用方向,多窗口间多通信等;

  storage的events对象的属性常用的如下: 

    oldValue:更新前的值。如果该键为新增加,则这个属性为null;

    newValue:更新后的值。如果该键被删除,则这个属性为null;
    url:原始触发storage事件的那个网页的网址;
    key:存储store的key名。

  局限:可能出现大量冗余数据存储,store安全性有限

if(window.addEventListener){ 
    window.addEventListener("storage",handle_storage,false); 
}else if(window.attachEvent){ 
    window.attachEvent("onstorage",handle_storage); 
} 
function handle_storage(e){
    if(!e){
        e=window.event;
    }
    //处理事务
}

 

posted @ 2016-07-26 16:33  huliang56  阅读(333)  评论(0编辑  收藏  举报