使用jquery缓存JSON对象并检索它

时间:2012-10-05 15:22:39

标签: jquery caching

我想在页面中缓存以下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对象,然后在另一个页面上检索它。

谢谢。

3 个答案:

答案 0 :(得分:10)

保存美味的饼干

$.cookie("test-data", JSON.stringify(test));

回到那个甜蜜的饼干

var test =  JSON.parse($.cookie("test-data"));

http://www.electrictoolbox.com/jquery-cookies/

答案 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结合使用,最终可能会遇到某种解决方案。