0

我对 localStorage 如何工作有疑问。我阅读了文档,并成功地在我们的网页游戏中实现了它。我们正在使用 ImpactJS 引擎并使用这个插件 -> https://github.com/jsantell/ImpactStorage来实现我们的目的。虽然我对网络上持久数据的整个概念仍然很陌生

在我们的游戏中,我们预计大约有 1000 个或更多的团队(每个团队将有大约 5 名玩家)在不同的浏览器、不同的机器上玩游戏。

现在所有团队都将他们的信息存储在数据库中,该数据库为每个团队创建了一个唯一的 ID。对于每个团队,我将有大约 40 个 localStorage 键值用于不同的游戏元素

在将来遇到任何麻烦之前,我想确保我用于 localStorage 的任何值都将持续存在并在不同的系统、不同的浏览器上工作,这意味着如果 localStorage 中的一个键的值被更新,会同一团队的其他不同系统上的密钥也会更新吗?

现在我在一台机器和 3 种不同的浏览器上测试了它,并且值随处更新,但它也可以在不同的机器上工作吗?

如果有人可以简单地解释一下 localStorage 在这种情况下的工作原理?

谢谢!

4

2 回答 2

1

您可以将其localStorage视为类固醇上的饼干。如果您使用过 cookie,那么您对网络上的持久数据并不陌生。您将获得持久的基于浏览器(和浏览器限制)的基于字符串的键值存储、更多存储*,并且您失去了跨子域存储的直接能力(您可以通过这种方式实现该目标)。它不会自动与您的服务器同步,甚至不会与同一台机器上的其他浏览器同步,而无需一些外部进程。编程概念将localStorage(大部分*)在任何支持W3ClocalStorage规范的浏览器上工作相同

我在一台机器和 3 种不同的浏览器上对其进行了测试

3 种不同的浏览器,如 Chrome、Firefox 和 IE 或同一浏览器的 3 个不同的选项卡/窗口?我问是因为 localStorage 不会在浏览器之间同步(除非您有一些外部进程执行同步)。

希望这可以帮助

*不同的浏览器有不同的存储级别,这个答案解释了更多

于 2014-04-02T21:43:26.053 回答
0

localStorage is specific to the individual browser of the individual user on their individual computer or device - so is not suitable for sharing data between different browsers, devices or team members. It is also worth noting that users can delete their localstorage for a site at any time, and privacy concious users may do this frequently in the process of clearing their history and private data. You will want to look at a server side database solution such as SQL server or MySQL based on the question.

You could however use localStorage to persist/cache key/value pairs locally to avoid round-trip lookups or allow use offline.

于 2014-04-02T21:38:07.693 回答