HTML5本地存储与会话存储

JavaScript

Mandy小小

2020-03-12

除了是非持久性的并且仅限于当前窗口之外,会话存储与本地存储相比是否还有其他好处(性能,数据访问等)?

第1068篇《HTML5本地存储与会话存储》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

9个回答
Pro十三 2020.03.12

Ya会话存储和本地存储的行为相同,只是本地存储将存储数据,直到并且除非用户删除缓存,并且cookie和会话存储数据将保留在系统中,直到我们关闭会话,即直到我们关闭为止。会话存储创建窗口。

十三A 2020.03.12
  • sessionStorage 为每个给定的来源维护一个单独的存储区域,该存储区域在页面会话期间可用(只要浏览器处于打开状态,包括页面重新加载和还原)

  • localStorage 做同样的事情,但是即使关闭并重新打开浏览器也仍然存在。

我是从https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API上获取的

L 2020.03.12

我认为,会话存储相对于本地存储的优势在于,它在Firefox中具有无限的容量,并且持续时间不会超过会话。(当然,这取决于您的目标。)

小碗儿 2020.03.12

在性能方面,我的(粗略)测量发现1000次读写没有区别

从安全性的角度来看,直观上看,localStore可能在sessionStore之前已关闭,但没有具体证据-也许有人这样做?

在功能上明智,与上述digitalFresh相同

Jim小哥GO 2020.03.12

之间的主要区别localStoragesessionStoragesessionStorage为每个标签是唯一的。如果关闭选项卡sessionStoragelocalStorage则不会删除您也无法在标签之间进行通信:)

另一个细微的区别是,例如在Safari(8.0.3)localStorage具有2551个ķ字符的限制,但sessionStorage具有无限的存储

在Chrome(V43)都localStoragesessionStorage被限制为5101个ķ字符(正常/无痕模式之间没有差别)

在Firefox localStorageFirefox上均sessionStorage限制为5120 k个字符(正常/私有模式之间没有区别)

速度没有任何区别:)

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

十三凯 2020.03.12

sessionStorage与相同localStorage,除了它仅存储一个会话的数据,并且当用户关闭创建数据的浏览器窗口时,该数据将被删除。

路易EvaSam 2020.03.12

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

  1. 本地存储和会话存储都限于文档来源,因此

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

    上述所有URL 不会共享同一存储空间。(网页的通知路径不会影响网络存储)

  2. 即使在不同选项卡中打开了相同原始策略的文档,会话存储也有所不同,因此在两个不同选项卡中打开的同一网页无法共享相同的会话存储。

  3. 本地存储和会话存储也受浏览器供应商的限制因此,Chrome或FF无法读取IE保存的存储数据。

希望这可以帮助。

Tony村村 2020.03.12

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

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

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

泡芙 2020.03.12

唯一的区别是localStorage的到期时间不同,sessionStorage只有在创建它的窗口打开时才能访问。
localStorage持续到您将其删除或用户将其删除为止。
比方说,你想保存登录用户名和密码,您可能需要使用sessionStorage超过localStorage出于安全原因(即另一人在以后的时间访问他们的帐户)。
但是,如果您想将用户的设置保存在他们的计算机上,则可能需要这样做localStorage总而言之:

localStorage-长期使用。
sessionStorage-当您需要存储变化或临时的东西时使用

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android