JSON Persistence / DOM - PullRequest
       1

JSON Persistence / DOM

0 голосов
/ 12 сентября 2011

Мне нужно разработать приложение ajax (использующее историю навигации по привязке) для отправки запросов (метод GET) и получения ответа в формате JSON.Как я могу сохранить данные, полученные в json?, Это будет сериализовано в сеанс или сохранить на стороне клиента?Мне нужно оптимизировать перезагрузку (производительность) как твиттер при навигации по профилю и по дому.HTML или JSON сохраняется.Мой вопрос заключается в том, может ли твиттер сохранить HTML, загруженный в DOM, или снова отобразить данные из json.

По сути, идея заключается в том, чтобы имитировать то, что делает твиттер в навигации вашего сайта.

Большое спасибо и извините за мой английский!

Ответы [ 2 ]

2 голосов
/ 12 сентября 2011

Взгляните на AmplifyJS , который представляет собой HTML 5 polyfill для интерфейса localStorage. Это должно позволить вам сохранить ваш JSON в браузере.

В целом, Modernizr имеет список полифилов, которые могут вас заинтересовать, если вы заинтересованы в хранении в браузере.

0 голосов
/ 12 сентября 2011

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

1) при переходе со страницы

и

2) при использовании кнопки возврата

Обычно обнаруживается, что элементы, созданные вами из данных JSON, «теряются» и больше не отображаются при использовании кнопки «Назад».

Хотя я не могу быть уверен (у меня не было бюджета, чтобы выяснить, почему), я думаю, это потому, что кнопка «Назад» иногда берет вашу историческую страницу из кэша и не запрашивает это снова. Кэшируются только элементы, которые были доставлены в исходном запросе, т.е. не ваши элементы, созданные "JSON". Я уверен, что кто-то может исправить меня в этом!

Это, как говорится, единственный способ решить эту проблему заключается в следующем:

  1. Когда страница загружена, выполните функцию, которая получает ваш JSON данные с использованием AJAX и создает остальную часть страницы.
  2. Непосредственно перед созданием запроса AJAX проверьте, заполнен ли SessionStorage. с данными. (не локальное хранилище)
  3. Если это не так, после получения данных JSON из запроса ajax сохраните объект javascript в хранилище сеанса.
  4. Если он заполнен, используйте данные хранения сеанса вместо , выполняющего запрос ajax.

Очевидным преимуществом этого является то, что меньше запросов AJAX = меньше сетевого времени, о чем вы упомянули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...