localStorage是否依赖于连接?

时间:2016-12-19 16:56:48

标签: javascript google-chrome local-storage

我为孩子们制作了一个小型JavaScript数学游戏,使用localStorage存储高分。它工作正常,做它应该做的事情,并且即使在浏览器关闭或计算机关闭时也能保存高分。但是,今天我尝试使用不同的Internet连接来测试游戏,我使用的两个localStorage项目(一个用于分数,一个用于名称)都返回undefined

两次游戏都是在Windows 7(同一台PC)的Chrome v55中播放的。最初它是通过我们的家庭Wi-Fi连接,但今天它是通过公共(咖啡店)Wi-Fi连接。

localStorage仍然适用于公共Wi-Fi连接 - 我可以设置新值并检索它们 - 但我想知道为什么它没有存储原始值。没有清除浏览器历史记录或Cookie。有谁知道localStorage是否有针对不同互联网连接的单独容器?

更新:localStorage对象正常工作 - 它保存并保存数据 - 唯一的问题是当连接到不同的网络连接时检索到它会丢失值。

这是用于从localStorage获取数据的代码:

if (localStorage.mb_hiscore == 0) { localStorage.mb_name = " "; } hiscore.innerHTML = localStorage.mb_hiscore + "<br />" + localStorage.mb_name;

再次更新:Chrome在公共Wi-Fi和我的家庭Wi-Fi上显示相同的来源:

origin setting, file

此外,我在公共Wi-Fi连接上设置的localStorage值在我以后在我的家庭网络上检索时仍然存在,所以到目前为止只有一次Chrome丢弃了这些值。 / p>

1 个答案:

答案 0 :(得分:2)

每个来源都有自己的localStorage。如果您检查document.location.origin的值,您可能会得到类似这样的内容:“http://localhost:8080

根据您访问应用的方式,如果这些部分中的任何部分发生变化,无论是主机名,端口号还是协议,如果不同的来源因此修改自己的存储,您将会处理。从浏览器的角度来看,这是一个完全不同的终点。

尝试再次重现您的问题,这次请注意您正在使用的地址。