HTML5 LocalStorage 本地存储.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HTML5LocalStorage本地存储HTML5LocalStorage本地存储

HTML5?LocalStorage?本地存储 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5 ? 最早的Cookies4KB的样子,而且IE6只支持每个域名20个cookies,太少了。优势就是大家都支持,而且支持得还蛮好。很早以前那些禁用cookies的用户也都慢慢的不存在了,就好像以前禁用javascript的用户不存在了一样。 ? userData是IE的东西,垃圾。现在用的最多的是Flash吧,空间是Cookie的25倍,基本够用。再之后Google推出了Gears,虽然没有限制,但不爽的地方就是要装额外的插件(没具体研究过)。到了HTML5把这些都统一了,官方建议是每个网站5MB,非常大了,就存些字符串,足够了。比较诡异的是居然所有支持的浏览器目前都采用的5MB,尽管有一些浏览器可以让用户设置,但对于网页制作者来说,目前的形势就5MB来考虑是比较妥当的。 支持的情况如上图,IE8.0的时候就支持了,非常出人意料。不过需要注意的是,IE、Firefox测试的时候需要把文件上传到服务器上(或者localhost),直接点开本地的HTML文件,是不行的。 ? 首先自然是检测浏览器是否支持本地存储。在HTML5window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。二者用法完全相同,这里以localStorage为例。 if(window.localStorage){ ?alert(This?browser?supports?localStorage); }else{ ?alert(This?browser?does?NOT?support?localStorage); } ? 存储数据的方法就是直接给window.localStoragewindow.localStorage.a?或者?window.localStorage[a]。它的读取、写、删除操作方法很简单,是以键值对的方式存在的,如下: localStorage.a?=?3;//设置a为3 localStorage[a]?=?sfsf;//设置a为sfsf,覆盖上面的值 localStorage.setItem(b,isaac);//设置b为isaac var?a1?=?localStorage[a];//获取a的值 var?a2?=?localStorage.a;//获取a的值 var?b?=?localStorage.getItem(b);//获取b的值 localStorage.removeItem(c);//清除c的值 ? 这里最推荐使用的自然是getItem()setItem(),清除键值对使用removeItem()。如果希望一次性清除所有的键值对,可以使用clear()。另外,HTML5还提供了一个key()方法,可以在不知道有哪些键值的时候使用,如下: var?storage?=?window.localStorage; function?showStorage(){ ?for(var?i=0;istorage.length;i++){ ??//key(i)获得相应的键,再用getItem()方法获得对应的值 ??document.write(storage.key(i)+??:??+?storage.getItem(storage.key(i))?+?br); ?} } ? 写一个最简单的,利用本地存储的计数器: var?storage?=?window.localStorage; if?(!storage.getItem(pageLoadCount))?storage.setItem(pageLoadCount,0); storage.pageLoadCount?=?parseInt(storage.getItem(pageLoadCount))?+?1;//必须格式转换 document.getElementByIdx_x(count).innerHTML?=?storage.pageLoadCount; showStorage(); 不断刷新就能看到数字在一点点上涨,如下图所示: ? 需要注意的是,HTML5parseInt必须要使用的原因。 ? 另外,在iPhone/iPadsetItem()时会出现诡异的QUOTA_EXCEEDED_ERR错误,这时一般在setItem之前,先removeItem()就ok了。 ? HTML5的本地存储,还提供了一个storage事件,可以对键值对的改变进行监听,使用方法如下: if(window.addEventListener){ ?window.ad

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档