- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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为3localStorage[a]?=?sfsf;//设置a为sfsf,覆盖上面的值localStorage.setItem(b,isaac);//设置b为isaacvar?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
您可能关注的文档
- How to achieve success on campus 2.doc
- How to be a good English teacher.doc
- How to be a passionate English Teacher?.doc
- How to calculate excavators productivity.doc
- how to choose a Good PE Foam Sheet Extrusion Line.doc
- How to find the main idea of a paragraph.doc
- How to Get the Poor off Our Conscience.doc
- How to Hedge against Risks in International Trade.doc
- How to Read a Poem.doc
- How to study and learn.doc
最近下载
- 常见的平面牵出线调车工作(宽屏).ppt
- 行风建设及医德医风考核领导小组 .pdf VIP
- 2024危险化学品重大生产安全事故隐患判定标准考核试题及答案.docx VIP
- 宁攀高速zcb1-14项目部现浇箱梁统计表.xlsx VIP
- 咸阳市事业单位招聘硕士研究生人员真题.docx VIP
- 物业管理服务节能降耗与环保管理方案.pdf
- 万东医疗DR产品介绍课件.ppt
- 高中政治2025届高考《中国特色社会主义》真题汇总练习(附参考答案).doc
- 联通新融合发展技能竞赛(业务管理及稽核赛道)试题及答案.doc VIP
- 山东省临沂市罗庄区2023-2024学年七年级上学期期中考试语文试题(含答案).doc VIP
文档评论(0)