Кэшируйте выполнение файла JavaScript - PullRequest
0 голосов
/ 26 марта 2012

Насколько я знаю, невозможно добиться следующего, но только эксперт может подтвердить это:

У меня есть страница № 1, которая запрашивает некоторые данные пользователя и приложения, как только страница загружается, на странице № 2 используется тот же сценарий, и было бы бесполезно запрашивать ту же самую информацию.

Я знаю, что браузеры кэшируют сценарий, мой вопрос, если он также кэширует выполнение (данные).

Страницы не имеют одинакового макета, поэтому невозможно перезагрузить страницу №2 через ajax.

Ответы [ 4 ]

2 голосов
/ 26 марта 2012

Браузер не кеширует автоматически результаты скрипта (что было бы очень странно), но вы можете, установив (и проверив) куки , используя новое локальное хранилище в современном браузере и т. д. Обратите внимание, что при использовании файлов cookie они отправляются на сервер при каждом запросе, что приводит к увеличению размера запросов; если вы можете использовать локальное хранилище, сделайте.

1 голос
/ 26 марта 2012

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

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

1 голос
/ 26 марта 2012

Браузер не будет автоматически кэшировать ваши данные, если ваша «страница» - это новый URL.

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

Другой вариант - написать приложение таким образом, чтобы оно представляло собой одну страницу.с несколькими представлениями и переходами Используйте AJAX для замены частей вашей страницы (просмотров).

Эта техника становится все более популярной.

Я настоятельно рекомендую прочитать «Javascript Web Applications» Алекса МакКоу, чтобы понять javascript MVC и узнать, как использовать javascript для создания контроллера на стороне клиента (на основе браузера).и просматривать и управлять кэшированием, состоянием и т. д. в браузере.Также посмотрите на фреймворки, такие как backbone.js

http://www.amazon.com/JavaScript-Web-Applications-Alex-MacCaw/dp/144930351X/ref=sr_1_1?s=books&ie=UTF8&qid=1332771002&sr=1-1

1 голос
/ 26 марта 2012

Вы можете «кэшировать» свои данные, если вы используете какое-то хранилище на стороне клиента, например localStorage (см. Документ MDN для получения более подробной информации).

Сам браузер также может кэшировать ваш запрос внутренне, поскольку запрос ajax ничем не отличается от любого другого запроса, сделанного браузером (html-документы, изображения и т. Д.). Таким образом, в зависимости от вашего точного запроса (включая все параметры) Браузер может фактически использовать кэшированную версию вашего запроса, чтобы избежать ненужных вызовов. Здесь, однако, применяются обычные ограничения и свойства кэширования, поэтому вы можете не полагаться на такое поведение!

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