除了非持久化和仅作用于当前窗口之外,会话存储相对于本地存储是否有任何好处(性能,数据访问等)?


当前回答

在我看来,会话存储相对于本地存储的优势在于,它在Firefox中具有无限的容量,并且不会持续比会话更长的时间。(当然这取决于你的目标是什么。)

其他回答

localStorage和sessionStorage之间的主要区别是sessionStorage每个选项卡都是唯一的。如果关闭选项卡,sessionStorage将被删除,而localStorage不会。你也不能在标签之间通信:)

另一个微妙的区别是,例如在Safari(8.0.3)上,localStorage限制为2551 k字符,而sessionStorage有无限的存储空间

在Chrome (v43)中,localStorage和sessionStorage都被限制在5101 k个字符(正常/隐身模式没有区别)

在Firefox上,localStorage和sessionStorage都被限制为5120 k字符(正常模式和私有模式之间没有区别)

速度没有任何差异:)

移动Safari和移动Chrome也有一个问题,私人模式Safari和Chrome的最大空间为0KB

localStorage和sessionStorage都扩展了Storage。除了sessionStorage的“非持久性”之外,它们之间没有任何区别。

也就是说,存储在localStorage中的数据将一直存在,直到显式删除为止。所做的更改将被保存,并可用于当前和将来对站点的所有访问。

对于sessionStorage,更改仅适用于每个选项卡。所做的更改将被保存,并可用于该选项卡中的当前页面,直到关闭该选项卡为止。一旦关闭,存储的数据就会被删除。

性能方面,我的(粗略的)测量在1000次写入和读取时没有发现差异

安全方面,从直觉上看,localStore可能会在sessionStore之前关闭,但没有具体的证据-也许其他人会?

功能方面,与digitalFresh一致

sessionStorage为每个给定的源维护一个单独的存储区域,该存储区域在页面会话期间可用(只要浏览器打开,包括页面重新加载和恢复)。 localStorage做同样的事情,但是即使浏览器关闭并重新打开,它仍然存在。

我从Web存储API中获得了这个

The only difference is that localStorage has a different expiration time, sessionStorage will only be accessible while and by the window that created it is open. localStorage lasts until you delete it or the user deletes it. Lets say that you wanted to save a login username and password you would want to use sessionStorageover localStorage for security reasons (ie. another person accessing their account at a later time). But if you wanted to save a user's settings on their machine you would probably want localStorage. All in all:

localStorage—用于长期使用。 sessionStorage—当您需要存储更改的东西或临时的东西时使用