除了是非持久性的并且仅限于当前窗口之外,会话存储与本地存储相比是否还有其他好处(性能,数据访问等)?
除了是非持久性的并且仅限于当前窗口之外,会话存储与本地存储相比是否还有其他好处(性能,数据访问等)?
Answers:
localStorage和sessionStorage都扩展了Storage。除了的预期的“非持久性”外,它们之间没有任何区别sessionStorage
。
也就是说,存储在中的数据将localStorage
一直保留到明确删除为止。所做的更改将被保存,并且可用于当前和将来对该站点的所有访问。
对于sessionStorage
,更改仅在每个选项卡上可用。所做的更改将保存并在该选项卡中可用于当前页面,直到关闭为止。一旦关闭,存储的数据将被删除。
其他几点可能有助于理解本地存储和会话存储之间的差异
本地存储和会话存储都限于文档来源,因此
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/
以上所有URL均不会共享同一存储空间。(网页的通知路径不会影响网络存储)
即使在不同选项卡中打开了相同原始策略的文档,会话存储也有所不同,因此在两个不同选项卡中打开的同一网页无法共享相同的会话存储。
本地存储和会话存储也受浏览器供应商的限制。因此,Chrome或FF无法读取IE保存的存储数据。
希望这可以帮助。
之间的主要区别localStorage
和sessionStorage
是sessionStorage
为每个标签是唯一的。如果您关闭标签,则会sessionStorage
删除该标签,localStorage
则不会。您也无法在标签之间进行通信:)
另一个细微的区别是,例如在Safari(8.0.3)localStorage
具有2551个ķ字符的限制,但sessionStorage
具有无限的存储
在Chrome(v43)上localStorage
和sessionStorage
被限制为5101个ķ字符(正常/无痕模式之间没有差别)
在Firefox localStorage
和sessionStorage
限制为5120 k个字符(正常/私有模式之间没有区别)
速度没有任何区别:)
移动Safari和移动Chrome也存在问题,专用模式Safari和Chrome的最大空间为0KB
sessionStorage
是相同的 localStorage
,除了它仅存储一个会话的数据,并且当用户关闭创建该数据的浏览器窗口时,该数据将被删除。
本地存储:一直存储用户信息数据,没有到期日期。当用户关闭浏览器窗口时,该数据将不会被删除,它将在日,周,月和年可用。
//Set the value in a local storage object
localStorage.setItem('name', myName);
//Get the value from storage object
localStorage.getItem('name');
//Delete the value from local storage object
localStorage.removeItem(name);//Delete specifice obeject from local storege
localStorage.clear();//Delete all from local storege
会话存储:它与本地存储日期相同,不同之处在于它将在Web用户关闭浏览器窗口时删除所有窗口。
//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";
阅读更多请点击
sessionStorage
为每个给定的来源维护一个单独的存储区域,该存储区域在页面会话期间可用(只要浏览器处于打开状态,包括页面重新加载和还原)
localStorage
做同样的事情,但是即使关闭并重新打开浏览器也仍然存在。
我是从https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API上获取的