localStorage和sessionStorage

localStorage和sessionStorage,第1张

localStorage(本地存储)和sessionStorage(会话存储)是HTML5的WebStorage提供的两种API,区别如下:

localStorage的生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。除非主动删除数据,否则数据永远不会消失。

sessionStorage的生命周期是仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。

localStorage和sessionStorage的存储数据大小一般都是:5MB

localStorage和sessionStorage都保存在客户端,不与服枣渗务器进行交互通信。

localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理

localStorage:window.localStorage;sessionStorage:window.sessionStorage

localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据。sessionStorage:敏感账号一次性登录;

cookie为4KB,而WebStorage是5MB;

WebStorage不会传送到服务器,存储在本地的数据可以直接获取,也不会像cookie一样美词请求都会传送到服务器,所以减少了客户端和服务器端的交互,节省了网络流量;

对于那种只需要在用户浏览一组页面期间保存而关闭浏览器后就可以丢弃的数据,sessionStorage会非常方便;

有的数据存储在WebStorage上,再加上浏览器本身的缓存。获取数据时可以从本地获取会比从服务器端获取快得多,所以速度更快;

WebStorage不会随着HTTP header发送到服务器端顷携,所以安全性相对于cookie来说比较高一些,不会担心截获,但是仍然存在伪造问题;

setItem (key, value) —— 保存数据,以键值对的方式储存信息。

getItem (key) —— 获取数据,将键值传入,即可获取到对应的value值;

removeItem (key) —— 删除单个数据,根据键值移除对应的信息。

clear () —— 删除所有的数据;

key (index) —— 获取某个索引的key

保存数据的方法:

读取数据的方法:

保存数据的方法:

读取数据的方法:

1、所谓的浏览器页面之间共享信息只能由localStorage来完成,并且前提是相同的域名、协议和端口号,对于sessionStorage来说,即使域名、协议和端口相同,那么sessionStorage的信息也是无法共享的

2、localStorage生命周期是永久,这意味着除非用户手动清除localStorage信息,否则这些信息将永远存在,sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有雀岩伏通过sessionStorage存储的数据也就被清空了。

在保存数据时,若使用sessionStorage读取或保存数据,则使用sessionStorage对象并调用该对象的读写方法;若使用localStorage读取或保存数据,则使用localStorage对象并调用该对象的读写方法。在进行读写时,不管是哪个对象,都可以通过该对象的getItem方法来读取数据,也可以该对象的自定义属性值读取数据;可以通过该对象的setItem方法保存数据,也可以通过该对象的自定义属性值保存数据。保存数据时按“键名/键值”的形式进行保存。当通过该对象的getItem方法读取数据时,将参数指定为键名,该方法返回键值;当通过该对象的自定义属性值读取数据时,可以将该对象的某个自定义属性名作为键名,访问该自定义属性的属性值即可得到键值;当通过该对象的setItem方法保存数据时,将第一个参数指定为键名,将第二个参数指定为键值;当通过该对象的自定义属性值保存数据时,可以将该对象的某个自定义属性名作为键名,然后直接将该自定义属性值设置为键值。在保存数据时不允许重复保存相同的键名。保存后可以修改键值,但不允许修改键名(只能重新取键名,然后再保存键值)。

目前最大的应含拍该是支持5M的最大容量。

html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话激橘中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

不同浏览器对 HTML5 的本地存储大小基本均有限制,一个测试的结果如下:

IE 9          >4999995 + 5 = 5000000。

firefox 22.0 >5242875 + 5 = 5242880。

chrome  28.0  >2621435 + 5 = 2621440。

safari  5.1   >2621435 + 5 = 2621440。

opera   12.15 >5M (超出则会d出允许请求更多空间明老团的对话框)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12307016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存