除了是非持久性的并且仅限于当前窗口之外,会话存储与本地存储相比是否还有其他好处(性能,数据访问等)?
HTML5本地存储与会话存储
sessionStorage
为每个给定的来源维护一个单独的存储区域,该存储区域在页面会话期间可用(只要浏览器处于打开状态,包括页面重新加载和还原)
localStorage
做同样的事情,但是即使关闭并重新打开浏览器也仍然存在。
我是从https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API上获取的
我认为,会话存储相对于本地存储的优势在于,它在Firefox中具有无限的容量,并且持续时间不会超过会话。(当然,这取决于您的目标。)
在性能方面,我的(粗略)测量发现1000次读写没有区别
从安全性的角度来看,直观上看,localStore可能在sessionStore之前已关闭,但没有具体证据-也许有人这样做?
在功能上明智,与上述digitalFresh相同
之间的主要区别localStorage
和sessionStorage
是sessionStorage
为每个标签是唯一的。如果关闭选项卡sessionStorage
,localStorage
则不会删除。您也无法在标签之间进行通信:)
另一个细微的区别是,例如在Safari(8.0.3)localStorage
具有2551个ķ字符的限制,但sessionStorage
具有无限的存储
在Chrome(V43)都localStorage
和sessionStorage
被限制为5101个ķ字符(正常/无痕模式之间没有差别)
在Firefox localStorage
和Firefox上均sessionStorage
限制为5120 k个字符(正常/私有模式之间没有区别)
速度没有任何区别:)
Mobile Safari和Mobile Chrome也存在问题,私有模式Safari和Chrome的最大空间为0KB
sessionStorage
与相同localStorage
,除了它仅存储一个会话的数据,并且当用户关闭创建数据的浏览器窗口时,该数据将被删除。
其他几点可能有助于理解本地存储和会话存储之间的差异
本地存储和会话存储都限于文档来源,因此
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/上述所有URL 不会共享同一存储空间。(网页的通知路径不会影响网络存储)
即使在不同选项卡中打开了相同原始策略的文档,会话存储也有所不同,因此在两个不同选项卡中打开的同一网页无法共享相同的会话存储。
本地存储和会话存储也受浏览器供应商的限制。因此,Chrome或FF无法读取IE保存的存储数据。
希望这可以帮助。
localStorage和sessionStorage都扩展了Storage。除了的预期的“非持久性”外,它们之间没有区别sessionStorage
。
也就是说,存储在其中的数据将localStorage
一直保留到明确删除为止。所做的更改将被保存,并且可用于当前和将来对该站点的所有访问。
对于sessionStorage
,更改仅在每个选项卡上可用。所做的更改将保存并在该选项卡中可用于当前页面,直到关闭为止。一旦关闭,存储的数据将被删除。
唯一的区别是localStorage的到期时间不同,sessionStorage
只有在创建它的窗口打开时才能访问。localStorage
持续到您将其删除或用户将其删除为止。
比方说,你想保存登录用户名和密码,您可能需要使用sessionStorage
超过localStorage
出于安全原因(即另一人在以后的时间访问他们的帐户)。
但是,如果您想将用户的设置保存在他们的计算机上,则可能需要这样做localStorage
。总而言之:
localStorage
-长期使用。
sessionStorage
-当您需要存储变化或临时的东西时使用
Ya会话存储和本地存储的行为相同,只是本地存储将存储数据,直到并且除非用户删除缓存,并且cookie和会话存储数据将保留在系统中,直到我们关闭会话,即直到我们关闭为止。会话存储创建窗口。