HTML5中的localStorage啥时候会被清空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML5中的localStorage啥时候会被清空相关的知识,希望对你有一定的参考价值。

h5本地存储localStorage,sessionStorage。
localStorage是没有失效时间的,sessionStorage的声明周期是浏览器的生命周期。

当浏览器关闭时,sessionStorage的数据将清空,而localStorage数据只要不通过代码特意的删除或手动删除,是永久保存的。

删除方法:localStorage.clear();
下边是我写的一个小测试,里边有用到localStorage
http://runjs.cn/detail/4aaszv8t
参考技术A

html局部存储详解 - https://21xrx.com/full_stack/Html/html5_local_storage.html

参考技术B HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。
所以,localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
ocalStorage 方法存储的数据没有时间限制,如果清空的话,只能人为的清空,比如localStorage.removeItem(key)
会删除某一条数据,一旦删除,key对应的数据将会全部删除
全部清除:localStorage.clear()
某些时候使用removeItem逐个删除太麻烦,可以使用clear,执行的后果是会清除所有localStorage对象保存的数据
参考技术C HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。
所以,localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
ocalStorage 方法存储的数据没有时间限制,如果清空的话,只能人为的清空,比如localStorage.removeItem(key)
会删除某一条数据,一旦删除,key对应的数据将会全部删除
全部清除:localStorage.clear()
某些时候使用removeItem逐个删除太麻烦,可以使用clear,执行的后果是会清除所有localStorage对象保存的数据

在 localstorage 中存储 JS 和 CSS 有啥意义?

【中文标题】在 localstorage 中存储 JS 和 CSS 有啥意义?【英文标题】:What is the point of storing JS and CSS in localstorage?在 localstorage 中存储 JS 和 CSS 有什么意义? 【发布时间】:2013-12-23 05:16:02 【问题描述】:

在阅读 Stoyan Stefanov 的 web performance daybook 时,我遇到了以下情况:

Google 和 Bing 将 JavaScript 和 CSS 存储在 localStorage 中以改进 他们的移动网站性能

和link 到带有描述的博客。尽管如此,我读过它(并且有使用本地存储的合理经验),但我仍然无法理解这种行动的意义何在。在我看来,浏览器已经在做缓存 CSS 和 JS 的工作,绝对没有必要将它们存储在本地存储中。

谁能用简单的英文解释一下是什么原因?

PS 一开始我以为这可能与移动浏览器的缓存大小有关,但是当我检查时发现它们有超过 20Mb 的缓存(在我看来)足以确保像 google 和 bing 这样的流行网站有缓存的地方。

【问题讨论】:

我想知道他是从哪里得到的——我的浏览器的localStorage google.com 和 bing.com 包含零个 JavaScript 或样式表。 你试过手机版还是桌面版? 【参考方案1】:

+1,好问题。我能想到的唯一原因是加载时间的速度,在那些情况下它不再存储在缓存中。此外,正如您链接到的帖子所指出的,它使他们的 HTML 文件小了很多---200kb 到 39kb 是一个很大的区别。

编辑:

您问在什么情况下它不再在缓存中。根据我对缓存工作原理的理解,我相信缓存大小是固定的,所以一段时间后这些文件会被推出以腾出空间容纳更多文件。希望对你有帮助

【讨论】:

但是为什么不会在浏览器中缓存呢? 一开始我也有这个想法,但是后来我检查了当前移动浏览器的缓存大小。他们有超过 20Mb 的缓存(在我看来)足以确保像 google 和 bing 这样的流行网站有缓存的地方。 @SalvadorDali 当有人清除缓存时,或者当网络浏览器在每个会话中检查一次服务器时。所以当会话结束时,浏览器不需要从服务器重新下载这些文件。另外,如果有人填满了他们的缓存怎么办?使用本地存储,可以防止这种情况发生 @SalvadorDali - 我不记得确切的数字,但对于简单的浏览器缓存,限制以兆字节为单位,它是共享​​>,而不是每个站点。 localStorage 只是提供更多空间并允许自定义缓存解决方案

以上是关于HTML5中的localStorage啥时候会被清空的主要内容,如果未能解决你的问题,请参考以下文章

HTML5中的localStorage啥时候会被清空?

localStorage 啥时候清零?

使用 WKWebView 时,localStorage 未保存在 iFrame 中

H5的本地存储

Visual Studio编译很慢,啥原因

Visual Studio编译很慢,啥原因