gpt4 book ai didi

javascript - 使用 JSON 对象与 localStorage/sessionStorage/IndexedDB/WebSQL/等?

转载 作者:行者123 更新时间:2023-11-30 07:04:49 26 4
gpt4 key购买 nike

我有一个 Web 应用程序,它在启动时会获取几十个项目。所有这些项目都是 JSON,小于 1kb。

现在有许多存储选项,如问题中所示。

我正在考虑将这些对象存储在浏览器 JS 的一个变量中。我真的不明白为什么要使用这些浏览器存储?

那么使用任何基于浏览器的存储而不是 JS 中的变量的原因是什么。可能是从某个数据大小开始,最好使用浏览器存储,例如从 100kb 开始,最好不要使用 JS 变量。

var myModel = {}

注意

每次用户进入应用程序时,他都会从服务器获取新内容。内容对于缓存而言过于实时。 `

最佳答案

localStorageglobalStoragesessionStorage:

这些特性在已经实现了“Web Storage”的浏览器中都有,它们都指的是一种HashMap,一种字符串键和字符串值之间的映射。但生活是不同的。一旦事件页面关闭,sessionStorage 将被清除,但 localStorage 是永久的。( MDN DOM Storage guide )

  • globalStorage 有一点,自 Gecko 1.9.1 (Firefox 3.5) 起已过时,自 Gecko 13 (Firefox 13) 起不再支持,从那时起我们应该使用 localStorage 。这两者之间的区别只是 HTML5 范围支持(方案 + 主机名 + 非标准端口)。

这些可能对您有用:

-在您网站的不同页面之间共享您的对象。

-离线编程。

-缓存大对象

-或者当您需要本地持久存储时。


IndexedDB:

IndexedDB is useful for applications that store a large amount of data (for example, a catalog of DVDs in a lending library) and applications that don't need persistent internet connectivity to work (for example, mail clients, to-do lists, and notepads)

根据 MDN 的引用,您可以轻松找到关于使用 IndexedDB 的答案,如果您不知道 IndexedDB 是否对您有用,只需回答这些问题:

您是否在客户端存储了大量数据?如果是,请考虑使用它。

您的应用是否需要启用离线功能?如果需要,请考虑使用 IndexedDB。

您的应用是否需要持续的互联网连接?如果是,它仍然是一个选项,基于其他因素。


所以除了你不需要的离线工作,我猜,因为正如你所说:

The content is too realtime for caching.

这些具有一些功能,例如共享对象和管理大量数据,您应该由您来决定。

关于javascript - 使用 JSON 对象与 localStorage/sessionStorage/IndexedDB/WebSQL/等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21808052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com