在浏览器内存中存储 JSON 数据

Posted

技术标签:

【中文标题】在浏览器内存中存储 JSON 数据【英文标题】:Storing JSON data in browser memory 【发布时间】:2013-09-25 14:58:31 【问题描述】:

我想在浏览器中保留一些 JSON 信息。根据用户与应用程序的交互,我想将 5-6 个不同的 JSON 对象存储到内存中。我有什么选择来实现这一目标?请建议我可以在浏览器中保存信息的任何库或插件。

谢谢

【问题讨论】:

【参考方案1】:

您可以使用 html5 存储,它为您提供本地和会话存储。

本地存储将其保存在本地缓存中,因此将来可以再次访问,尽管浏览器已关闭。

会话存储将仅存储该特定会话的信息,并且会在会话结束后被擦除。

例如

//get item from storage
var foo = localStorage["bar"];

//set item in storage.
localStorage["bar"] = foo;

【讨论】:

我会使用 API 而不是括号语法来访问单个值。例如if( localStorage ) localStorage.setItem( key, value ); 请参阅:developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage 另外,请注意没有内置机制来检查条目的年龄,这可能对缓存失效很重要。在这种情况下,应该为每个包含时间戳的值存储数组。 这通常有 ~5MB 的限制:dev-test.nemikor.com/web-storage/support-test【参考方案2】:

使用 HTML5 存储。这会存储持久数据。

您可以通过localStorage["key"] 访问它。

【讨论】:

【参考方案3】:

为了添加给定的解决方案,我还想添加一个参考链接Storing Objects in HTML5 localStorage,很好地讨论了这个问题。

下面是代码

var testObject =  'one': 1, 'two': 2, 'three': 3 ;

// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));

// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');

console.log('retrievedObject: ', JSON.parse(retrievedObject));

礼貌:CMS

【讨论】:

以上是关于在浏览器内存中存储 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章

在本地存储中存储压缩的 json 数据

无法在浏览器的 cookie 中存储 json Web 令牌

通过 Angular 5 读取/下载 JSON 文件并将数据存储在本地 JSON 文件中

将数据从 json 存储到 localStorage 浏览器

sessionStorage和localStorage存储的转换不了json

将数据存储在浏览器中