HTML5本地存储与会话存储

除了非持久性和仅限于当前窗口的范围之外,是否有任何好处(性能,数据访问等)到本地存储上的会话存储?

localStoragesessionStorage都扩展了Storage 。 除了sessionStorage的预期“非持久性”外,它们之间没有区别。

也就是说,存储在localStorage的数据一直存在,直到被明确删除。 所做的更改已保存,并可用于当前和未来对该网站的所有访问。

对于sessionStorage ,更改仅适用于每个窗口(或Chrome和Firefox等浏览器中的选项卡)。 所做的更改将保存并可用于当前页面,以及将来在同一窗口中访问该网站。 窗口closures后,存储被删除。

唯一的区别是localStorage具有不同的到期时间, sessionStorage只能在创build它的窗口打开时访问。
localStorage一直持续到您删除它或用户删除它。
比方说,你想保存一个login用户名和密码,你会想出于安全考虑使用sessionStorage over localStorage (即另一个人在以后访问他们的帐户)。
但是如果你想在用户的机器上保存用户的设置,你可能需要localStorage 。 总而言之:

localStorage – 用于长期使用。
sessionStorage – 当你需要存储改变或暂时的东西的时候使用

其他几点可能有助于理解本地和会话存储之间的差异

  1. 所以本地存储和会话存储的范围都是文档来源

    https://mydomain.com/
    http://mydomain.com/
    https://mydomain.com:8080/

    以上所有url都不会共享相同的存储空间。 (通知path的网页不会影响networking存储)

  2. 即使在不同标签中打开具有相同来源策略的文档,会话存储也是不同的,因此在两个不同标签中打开的相同网页不能共享相同的会话存储。

  3. 本地和会话存储也都由浏览器供应商确定 。 所以IE保存的数据不能被Chrome或者FF读取。

希望这可以帮助。

localStoragesessionStorage之间的主要区别在于,每个选项卡的sessionStorage都是唯一的。 如果closures选项卡sessionStorage被删除, localStorage不会。 你也无法沟通标签:)

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

在Chrome(v43)上, localStoragesessionStorage都限制为5101 k个字符(正常/私有模式没有区别)

在Firefox上, localStoragesessionStorage被限制为5120 k个字符(正常/无痕模式没有区别)

无论速度没有差异:)

Mobile Safari和Mobile Chrome也存在问题,私有模式Safari和Chrome的最大空间为0KB

sessionStorage与localStorage相同,不同之处在于它只存储一个会话的数据,当用户closures创build它的浏览器窗口时会被删除

本地存储可以存储高达10MB的离线数据,而会话存储可以存储高达5MB的数据。 但是Cookie只能存储4kb的文本数据。

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

安全明智,直观地看来,本地存储可能会在sessionStore之前closures,但没有具体的证据 – 也许别人呢?

function上明智的,同上数字新鲜

Ya会话存储和本地存储在行为上是一样的,除了本地存储将存储数据,除非用户删除caching和cookie,并且会话存储数据将保留在系统中,直到我们closures会话i,直到我们closures会话存储创build窗口。

它们之间没有任何区别扩展存储,但sessionStorage为会话(选项卡或窗口)和localStorage存在的域,直到它被明确删除(调用清除方法或清除浏览器现金)。

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