Кэшировать объект JSON с помощью HTML5 - PullRequest
9 голосов
/ 03 августа 2011

Прежде всего, я хотел бы отметить, что я стажер с небольшим опытом работы в техническом мире, поэтому мне жаль, если ответ на мой вопрос кажется очевидным.Я пытался найти ответ в течение пары дней, и мне нечего показать.

Мой проект заключался в разработке телефонного справочника.То, что я пытаюсь сделать сейчас, - это окно с часто используемыми запросами, в котором отображаются первые десять искомых имен с тех пор, как пользователь начал использовать приложение.Я планирую создать объект JSON со следующей информацией, а затем кэшировать на стороне клиента результат:

var myJSONObject = {"searched": [       {"firstname":firstName,"lastname":lastName,"PK":pk,"phone":phonenumber,"email":emailaddress,"bu":businessunit,"company":company,"building":building, "fax":fax, "timesvisited":"accumulator to keep track of visits to the name"}

]};

У меня сейчас разболелась голова, выясняя, как кешироватьобъект JSON.Я создал файл манифеста, и я знаю, как кэшировать определенные файлы, такие как файл css, но как вы кешируете что-то, например, код, указанный выше, специально для того, чтобы данные сохранялись и могли отображаться до следующей страницы?

Ответы [ 2 ]

10 голосов
/ 03 августа 2011

Вы можете использовать локальное хранилище, которое поддерживается в Firefox 3.5, IE 8 и Chrome 4 и выше.Чтобы сохранить кэш в локальном хранилище:

localStorage['jsoncache'] = JSON.stringify(myJSONObject);

Чтобы извлечь его:

myJSONObject = JSON.parse(localStorage['jsoncache']);

Обратите внимание, что в локальном хранилище можно хранить только строки, а не объекты любого типа.Вы можете изменить jsoncache на что-то другое, если хотите.

4 голосов
/ 03 августа 2011

Я не совсем понимаю, как создавать, поддерживать и извлекать объект, но если вы загрузите его через Ajax, вы можете использовать HTTP-кэширование.

Если вы хотите сохранить его только локально, вы можете использовать localStorage (только новые браузеры поддерживают это):

// Serialize and store
localeStorage['topten'] = JSON.stringify(myJSONObject)

// Retrieve and deserialize
var myJSONObject = JSON.parse(localeStorage['topten'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...