网站首页 网站建设 公司动态 行业新闻 案例展示 关于我们

文章内容

html5客户端本地存储之sessionStorage及storage事件

日期:2013-11-23  来源:攀枝花惠康网络公司

首先您可以看一下《JavaScript当地存储实践(html5的localStorage和ie的userData)》
sessionStorage和上文中提到的localStorage很是体味,体例也几乎一样:

很是通俗易懂的接口:

  • sessionStorage.getItem(key):获取指定key当地存储的值
  • sessionStorage.setItem(key,value):将value存储到key字段
  • sessionStorage.removeItem(key):删除指定key当地存储的值
  • sessionStorage.length是sessionStorage的项目数

直接上demo:http://www.css88.com/demo/sessionStorage/

sessionStorage与 localStorage 的异同

sessionStorage 和 localStorage 就一个分歧的处所, sessionStorage数据的存储仅特定于某个会话中,也就是说数据只连结到浏览器封锁,当浏览器封锁后年夜头打开这个页面时,之前的存储已经被断根。而 localStorage 是一个持久化的存储,它并不局限于会话。

sessionStorage和localStorage供给的key()和length可以便利的实现存储的数据遍历,例如下面的代码:

sessionStorage 和 localStorage的clear()函数的用于清空同源的当地存储数据,好比localStorage.clear(),它将删除所有同源的当地存储的localStorage数据,而对于Session Storage,它只清空当前会话存储的数据。


var storage = window.localStorage;
for (var i=0, len = storage.length; i < len; i++){
var key = storage.key(i);
var value = http://www.css88.com/archives/storage.getItem(key);
console.log(key + "=" + value);
}

sessionStorage 和 localStorage具有不异的体例storage事务,在存储事务的措置函数中是不能打消这个存储动作的。存储事务只是浏览器在数据转变发生之后给你的一个通知。当setItem(),removeItem()或者clear() 体例被挪用,而且数据真的发生了改变时,storage事务就会被触发。注重这里的的前提是数据真的发生了转变。也就是说,如不美观当前的存储区域是空的,你再去挪用clear()是不会触发事务的。或者你经由过程setItem()来设置一个与现有值不异的值,事务也是不会触发的。当存储区域发生改变时就会被触发,这其中包含良多有用的属性:

  • storageArea: 暗示存储类型(Session或Local)
  • key:发生改变项的key
  • oldValue: key的原值
  • newValue: key的新值
  • url*: key改变发生的URL
  • * 注重: url 属性早期的规范中为uri属性。有些浏览器发布较早,没有包含这一变换。为兼容性考虑,使用url属性前,你应该先搜检它是否存在,如不美观没有url属性,则应该使用uri属性
    如不美观挪用clear()体例,那么key、oldValue和newValue城市被设置为null。
    PS.在firefox和chrome中存储和篡夺都是正常的, 可是对storage事务的触发似乎有点问题, 自身页面进行setItem后没有触发window的storage事务, 可是同时访谒A.html和B.html, 在A页面中进行 setItem能触发B页面中window的storage事务, 同样的在B页面中进行setItem能触发A页面中window的storage事务. 在IE9中, 页面自身的设值能触发当前页面的storage事务,同样当前页面的设值能触发统一”发源”下其他页面window的storage事务,这看起来似乎更让人想的通些.

    直接上demo,同事打开这两个页面(代码一模一样):

    封锁页面会导致 sessionStorage 的数据被断根,但刷新或年夜头打开新页面数据仍是存在,如不美观需要存储的只是少量的姑且数据。我们可以使用sessionStorage 。或者做页面间的小交互。

    http://www.css88.com/demo/sessionStorage/index2.html

    http://www.css88.com/demo/sessionStorage/index3.html

    感谢感动:Mr.Prime在storage事务上给以的辅佐,此外举荐一下他写的关于storage的博文:http://www.cnblogs.com/AndyWithPassion/archive/2011/07/04/html5_localstorage.html

    文章来源:攀枝花惠康网络公司

    惠康网络,是一家专业从事攀枝花网站建设,攀枝花网站制作,攀枝花网站设计公司,提供网站建设一条龙服务(网站域名注册+网站服务器租用+网站开发+网站维护+网站营销推广),惠康网络立足攀枝花,辐射全中国,攀枝花惠康网络的客户已经遍布国内各地大中小城市,我们高效优质的网站建设服务深受用户好评。

客服热线:tel(谢先生)  客服QQ:1323605005  
服务邮箱:yewubu@huikon.com(售前咨询)  jishubu@huikon.com(技术部)  shouhou@huikon.com(售后服务)
公司地址:四川省攀枝花市
邮编:617200