Кэш-объект JSON с использованием jquery и извлечения его

Я хочу кэшировать следующий объект 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, а затем восстановить его на другой странице.

Спасибо.

Ответ 1

сохранить этот вкусный cookie

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

получить этот сладкий печенье назад

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

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

Ответ 2

В дополнение к предоставленным ответам, в более сложных сценариях я бы рекомендовал использовать jStorage плагин.

Описание с веб-сайта:

jStorage - это база данных хранилища ключей для кросс-браузера для хранения данных локально в браузере - jStorage поддерживает все основные браузеры, оба на рабочем столе (да - даже Internet Explorer 6) и в мобильном. Кроме того, jStorage является агностиком библиотеки, он хорошо работает с любым другая библиотека JavaScript на той же веб-странице, будь то jQuery, Prototype, MooTools или что-то еще. Хотя вам все еще нужно иметь сторонней библиотеки (Prototype, MooTools) или JSON2 на странице, чтобы поддерживают более старые версии IE.

jStorage поддерживает сохранение строк, номеров, объектов JavaScript, массивов и даже собственные узлы XML. jStorage также поддерживает установку значений TTL для автоматического истечения срока хранения хранимых ключей и - лучше всего - уведомления других вкладки/окна, когда ключ был изменен или опубликован/подписан на события из той же или другой вкладки/окна, что также делает jStorage локальную платформу PubSub для веб-приложений.

Если jStorage загружается на страницу localStorage, а в IE6 и IE7 добавляются полисы, в дополнение к обычным методам $.jStorage. Вы можете использовать обычные методы setItem/getItem с полиполками, но также могут использоваться getter/seters - localStorage.mykey = myval; абсолютно справедливо с jStorage. Единственным недостатком является то, что вы не можете использовать событие onstorage, вместо этого вам нужно вернуться к listenKeyChange.

jStorage довольно маленький, около 10kB при минировании и 4kB gzipped.

Ответ 3

Вы говорите о кешировании в HTML? Вы всегда можете использовать LocalStorage, который сделает его доступным для любых страниц в одном домене.

Если вы объедините это с Modernizr и куки файлы, вы можете получить какое-то решение.