AJAX и Javascript вопрос эффективности кеша - PullRequest
2 голосов
/ 14 марта 2009

Я создаю простой блог, который просматривается на одной странице (не беспокойтесь, он постепенно создается), и поэтому я отправляю запросы AJAX, которые возвращают HTML-код для вставки на страницу.

Какой самый эффективный способ хранения / кэширования информации (HTML) для последующего добавления в DOM?

Сколько информации (старые записи, к которым пользователь может вернуться) осмелился сохранить на стороне клиента, используя JavaScript, учитывая, что они содержат HTML для всей статьи? Может быть, мне не нужно сохранять их с помощью JavaScript, если я каким-то образом проверяю, что клиентский браузер кэширует состояние приложения AJAX (например, getHTML.php? Article = 4), чтобы он возвращал HTML без реальной отправки запроса AJAX (после того, как он уже был запрошен один раз)?

Заранее спасибо,

Willem

Ответы [ 3 ]

2 голосов
/ 14 марта 2009

Не лучше ли позволить браузеру кэшировать подобные запросы?

 getHTML.php?article=4

Глупо изобретать колесо для таких запросов.

Я думаю, что единственное, что вам следует кэшировать, это данные, которые вы знаете , которые пользователь будет переключать для просмотра. Возьмем, к примеру, Digg - они кэшируют комментарии к каждой отправке Формат объекта в Javascript. Когда пользователь хочет просмотреть этот комментарий, функция просто вставляет его в документ в правильном формате. Однако не все комментарии кэшируются. Только самые верхние, которые наиболее вероятны для просмотра.

Любая информация, которую вы можете "переключать", чтобы показать / скрыть, она может быть кэширована и даже предварительно загружена. Вы также можете использовать технику visibility: hidden и display:none, как указано выше. Таким образом, вы просто перемещаете их в DOM и просто показываете и скрываете этот элемент при необходимости.

1 голос
/ 14 марта 2009

Я бы порекомендовал вам кэшировать их где-то внутри самого DOM, либо в их естественном месте, либо в «кэше» div, просто спрятать их или их контейнер (visibility: hidden). Переместите их вокруг DOM (например, final_container.appendChild(cache.removeChild(cached_item))) и покажите их по мере необходимости. Это должно дать вам максимальную выгоду с точки зрения эффективности памяти, скорости и простоты при работе с умеренным объемом кэшированной информации.

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

Проверьте эту статью о кэше на стороне браузера и для идей.

0 голосов
/ 14 марта 2009

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

Если вы действительно хотите, вы можете кэшировать каждую статью / страницу / что угодно как отдельный файл JavaScript, содержащий действительно легкий JSON с содержимым HTML.

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