我对localStorage的工作方式有疑问。我阅读了文档,我成功地在我们的网页游戏中实现了它。我们正在使用ImpactJS引擎并使用此插件 - > https://github.com/jsantell/ImpactStorage用于我们的目的。虽然我对网络上的持久性数据的整个概念仍然非常陌生
在我们的游戏中,我们预计大约有1000个或更多的团队(每个团队将有大约5名玩家)在不同的浏览器,不同的机器上玩游戏。
现在所有团队都将他们的信息存储在数据库中,为每个团队创建一个唯一的ID。对于每个团队,我将使用大约40个localStorage键值用于不同的游戏元素
在将来遇到任何麻烦之前,我想确保我用于localStorage的任何值都会持续存在并在不同的系统上工作,不同的浏览器意味着如果更新了localStorage中其中一个键的值,对于同一个团队,密钥是否也会在其他不同系统上更新?
现在我在一台机器和3种不同的浏览器中对它进行了测试,这些值在任何地方都得到了更新,但它是否也适用于不同的机器?
如果有人可以用简单的术语简单解释一下localStorage在这种情况下的确切作用?
谢谢!
答案 0 :(得分:1)
您可以将localStorage
视为类固醇的饼干。如果您已经使用过cookie,那么您并不熟悉Web上的持久性数据。您将获得基于浏览器的持久(和浏览器限制)基于字符串的键值存储,更多存储*并且您将失去跨子域存储的直接能力(you can accomplish that goal in this manner)。它不会自动与您的服务器同步,如果没有一些外部进程,它甚至不会与同一台机器上的其他浏览器同步。 localStorage
编程概念(主要是*)在支持the W3C localStorage
spec
我在一台机器和3种不同的浏览器中测试了它
Chrome,Firefox和IE中的3种不同浏览器或同一浏览器的3种不同选项卡/窗口?我问,因为localStorage不会在浏览器之间同步(除非你有一些外部进程在执行同步)。
希望这有帮助
*不同的浏览器具有不同的存储级别,this answer explains more
答案 1 :(得分:0)
localStorage特定于个人用户 个人计算机或设备上的个人浏览器 - 所以不是适合在不同浏览器,设备或团队成员之间共享数据。还值得注意的是,用户可以随时删除站点的本地存储,而隐私用户可能会在清除历史记录和私有数据的过程中经常这样做。您将需要根据问题查看服务器端数据库解决方案,如SQL Server或MySQL。
但是,您可以使用localStorage在本地持久保存/缓存键/值对,以避免往返查找或允许脱机使用。