关于html5中的localstorage详细介绍(图)


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

function set(key,value){

  var curtime = new Date().getTime();//获取当前时间

  localStorage.setItem(key,JSON.stringify({val:value,time:curtime}));//转换成json字符串序列

}

function get(key,exp)//exp是设置的过期时间

{

  var val = localStorage.getItem(key);//获取存储的元素

  var dataobj = JSON.parse(val);//解析出json对象

  if(new Date().getTime() - dataobj.time > exp)//如果当前时间-减去存储的元素在创建时候设置的时间 > 过期时间

  {

    console.log("expires");//提示过期

  }

  else{

    console.log("val="+dataobj.val);

  }

}

容量限制

目前业界基本上统一为5M,已经比cookies的4K要大很多了,省着点用吧骚年。

域名限制

由于浏览器的安全策略,localstorage是无法跨域的,也无法让子域名继承父域名的localstorage数据,这点跟cookies的差别还是蛮大的。

异常处理

localstorage在目前的浏览器环境来说,还不是完全稳定的,可能会出现各种各样的bug,一定要考虑好异常处理。我个人认为localstorage只是资源本地化的一种优化手段,不能因为使用localstorage就降低了程序的可用性,那种只是在console里输出点错误信息的异常处理我是绝对反对的。localstorage的异常处理一般用try/catch来捕获/处理异常。

如何测试用户当前浏览器是否支持localstorage

目前普遍的做法是检测window.localStorage是否存在,但某些浏览器存在bug,虽然“支持”localstorage,但在实际过程中甚至可能出现无法setItem()这样的低级bug。因此我建议,可以通过在try/catch结构里set/get一个测试数据有无出现异常来判断该浏览器是否支持localstorage,当然测试完后记得删掉测试数据哦。

浏览器兼容性

如何调试

在chrome开发者工具里的Resources - Local Storage面板以及Resources - Session Storage面板里,可以看到当前域名下的localstorage数据。

在ios设备上无法重复setItem()

另外,在iPhone/iPad上有时设置setItem()时会出现诡异的QUOTA_EXCEEDED_ERR错误,这时一般在setItem之前,先removeItem()就ok了。

以上就是关于html5中的localstorage详细介绍(图)的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

vue面试题的介绍(附答案)

介绍几个超炫酷的HTML5动画演示及源码的图文详解

HTML5 meter标签是什么意思?HTML5 meter标签的用法及属性介绍

如何使用插件数字滚动插件numberanimate.js?

h5调用相机拍照并压缩图片

HTML5返回音频/视频的当前网络状态(activity)的属性networkstate

HTML5 移动端自适应布局

HTML5中关于history模式的详解

HTML5怎么禁止缓存

HTML5中重新加载音频/视频元素的方法load()

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...