html localstorage,html5 storage_1

  html localstorage,html5 storage

  HTML API

  浏览器中的localstorage有两个API:localStorage和sessionStorage,它们存在于window对象中:local storage对应window.localStorage,sessionStorage对应window.sessionStorage

  localStorage和sessionStorage的主要区别在于它的生存期。

  基本使用方法

  localStorage.setItem(b , is AAC );//将b设置为 is AAC var b=local storage . getitem( b );//获取b的值,即‘is AAC’var a=local storage . key(0);//获取第0个数据项的键名,这里是“b”local storage . remove item( b );//清除b,localStorage.clear()的值;//清除当前域名下的所有localstorage数据作用域

  这里的范围是指如何隔离不同页面之间的localStorage(百度的页面上看不到腾讯的localStorage,哈哈哈)。

  LocalStorage可以读取/修改相同的localStorage数据,只要是在相同的协议、相同的主机名和相同的端口下。

  SessionStorage比localStorage更加严格。除了协议,主机名,端口,要求在同一个窗口(也就是浏览器的标签页)。

  生存期

  理论上,localStorage是永久的,也就是说,如果不主动清空,它是不会消失的。即使保存的数据超过了浏览器指定的大小,它也不会清空旧数据,而只会报告一个错误。但需要注意的是,在Native App使用的移动设备上的浏览器或WebView中,localStorage是不可靠的,可能会因为各种原因(如退出App、网络切换、内存不足等)而被清空。).

  顾名思义,sessionStorage的生存期类似于session。只要关闭浏览器(包括浏览器的标签页),就会被清除。由于sessionStorage的生存期太短,应用场景受到限制,但另一方面也不容易引起异常情况,可靠。

  数据结构

  Localstorage是一种标准的键-值对(KV)数据类型,简单但易于扩展。只要将存储在localstorage中的对象以某种编码方式转换成字符串,就可以很容易地支持它。比如:将一个对象转换成json字符串,就可以存储该对象;将图片转换为DataUrl(base64)格式,就可以保存图片了。此外,对于数据类型的键-值对,“键是唯一的”这一特性也非常重要。如果使用同一个键重复赋值,最后一个值将被覆盖。

  过期时间

  不幸的是,localstorage本身不支持设置过期时间。如果要设置,只能封装一层逻辑来实现:

  函数集(key,value){ var curtime=new Date()。getTime();//获取当前时间localstorage.setItem (key,json.stringify ({val: value,time:curtime });//Convert to JSON string sequence }函数get(key,exp)//exp是设置的到期时间{ var val=local storage . getitem(key);//获取存储元素var data obj=JSON . parse(val);//解析json对象if (newdate()。gettime()-data obj . time exp)//如果当前时间-减去存储元素在创建时设置的时间过期时间{ console . log( expires );//提示过期} else { console . log( val= data obj . val);}}容量限制

  目前行业基本统一到5M,已经比cookies的4K大很多了。留给骚年吧。

  域名限制

  由于浏览器的安全策略,localstorage不能跨域,子域不能继承父域的localstorage数据,这与cookies有很大区别。

  异常处理

  Localstorage在目前的浏览器环境下并不是完全稳定的,可能会出现各种bug,所以必须考虑异常处理。我个人认为localstorage只是一种资源本地化的优化方法,并不能因为使用了localstorage而降低程序的可用性。我绝对反对只在控制台输出一些错误信息的异常处理。localstorage的异常处理一般使用try/catch来捕捉/处理异常。

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

  目前常见的做法是检查window.localStorage是否存在,但有些浏览器存在bug。虽然“支持”localstorage,但实际过程中甚至可能出现无法setItem()等低级bug。所以我建议你可以通过在try/catch结构中设置/获取一个测试数据来判断浏览器是否支持localstorage。当然,测试结束后记得删除测试数据。

  浏览器兼容性

  如何调试

  在chrome developer tools的Resources-Local Storage面板和Resources-Session Storage面板中,可以看到当前域名下的Local Storage数据。

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

  此外,在iPhone/iPad上设置setItem()时,有时会出现奇怪的QUOTA_EXCEEDED_ERR错误。这时,在setItem之前移除Item setItem()就可以了。

  相关插件推荐

  商店. js

  Mozilla/local feed

  本地字体

  以上是边肖介绍的html5 localstorage的详细说明。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对网站的支持!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: