在浏览器内存中存储 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 数据的主要内容,如果未能解决你的问题,请参考以下文章
无法在浏览器的 cookie 中存储 json Web 令牌
通过 Angular 5 读取/下载 JSON 文件并将数据存储在本地 JSON 文件中
将数据从 json 存储到 localStorage 浏览器