我想在页面中缓存以下JSON对象,以便我可以在另一个页面上检索它。
var test = {
"lists":["list1","list2","list3","list4","list5"],
"maps": {
"key4":"value4","key3":"value3","key5":"value5","key2":"value2","key1":"value1"
},
"number1":123456789,
"numberarray1":[1,2,3,4,5,6,7,8,9],
"string1":"A",
"stringarray1":["A1","B1"]
}
如何缓存并再次检索?
这可能吗?如果没有,我可以通过其他方式保存我的JSON对象,然后在另一个页面上检索它。
谢谢。
答案 0 :(得分:10)
保存美味的饼干
$.cookie("test-data", JSON.stringify(test));
回到那个甜蜜的饼干
var test = JSON.parse($.cookie("test-data"));
答案 1 :(得分:4)
除了提供的答案之外,在更复杂的情况下,我建议使用jStorage插件。
网站描述:
jStorage是一个用于存储数据的跨浏览器键值存储数据库 在浏览器本地 - jStorage支持所有主流浏览器 在桌面(是 - 甚至是Internet Explorer 6)和移动设备。 此外,jStorage与库无关,它适用于任何 同一网页上的其他JavaScript库,无论是jQuery,Prototype, MooTools或其他东西。虽然你还需要一个 第三方库(Prototype,MooTools)或页面上的JSON2 支持旧的IE版本。
jStorage支持存储字符串,数字,JavaScript对象,数组 甚至是原生XML节点。 jStorage还支持设置TTL值 对于自动过期存储的密钥和 - 最重要的是 - 通知其他 密钥更改或发布/订阅时的选项卡/窗口 来自相同或另一个选项卡/窗口的事件,这也使jStorage成为可能 用于Web应用程序的本地PubSub平台。
如果在页面上加载了jStorage,则除了常规的$ .jStorage方法之外,localStorage和sessionStorage polyfill还会添加到IE6和IE7中。 您可以将常规setItem / getItem方法与polyfill一起使用,但也可以使用getter / setter - localStorage.mykey = myval;对jStorage绝对有效。 唯一的缺点是你不能使用onstorage事件,你需要回到listenKeyChange而不是。
jStorage相当小,缩小时大约10kB,gzip压缩4kB。
答案 2 :(得分:1)
您是在谈论HTML中的缓存吗?您始终可以使用LocalStorage,这将使其可用于同一域中的任何页面。
如果将其与Modernizr和Cookie结合使用,最终可能会遇到某种解决方案。