javascript не может быть кэширован? - PullRequest
1 голос
/ 06 августа 2009

Просто интересно, можно ли кешировать javascript? То есть, чтобы минимизировать клиентский процессор, необходимый для пересчета логики каждый раз, когда я обновляю браузер?

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

Ответы [ 4 ]

3 голосов
/ 06 августа 2009

Выполнение JavaScript будет происходить для каждой загрузки страницы на основе. Один из вариантов - изменить способ вызова JavaScript, сначала проверив, было ли вычислено значение перед выполнением вычисления. Для этого необходимо сохранить вычисленное значение в некоторой форме состояния, например, сеанс, URL-адрес в качестве параметра строки запроса или в файле cookie. Это гарантирует, что при первой загрузке страницы значение вычисляется и сохраняется. Для каждой последующей загрузки страницы значение будет извлекаться из состояния, а не пересчитываться.

2 голосов
/ 06 августа 2009

Клиент может локально кэшировать файл .js (запретить его загрузку), но операция, которую выполняет указанный файл, выполняется при каждой загрузке.

Что касается Карт Google, ему необходимо выполнить свои операции для отображения карты. В противном случае, позволяя клиенту кэшировать файл .js (сохраняя загрузку), вы ничего не можете сделать.

Лучшее, что вы можете сделать, это ограничить объем обработки, который требуется клиенту, или, если результат вашей обработки скалярный (строки, числа, массив), вы можете сохранить его в файле cookie для дальнейшего использования. DOM-манипуляции выполняются при каждой загрузке.

Выполняйте всю тяжелую обработку на сервере, когда это возможно.

1 голос
/ 06 августа 2009

Вы не можете кэшировать результат компиляции Javascript, но вы можете избежать загрузки частей вашей логики приложения, пока они не понадобятся - то есть, в тот момент, когда вам нужна некоторая логика, добавьте новый тег через DOM для нужной вам функциональности.

0 голосов
/ 06 августа 2009

Я думаю, что вы говорите об изображениях, загруженных JavaScript, с серверов Google?

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

Некоторые браузеры не поддерживают JavaScript так же хорошо, как другие. Firefox временно отстает, но и Google Chrome, и Safari работают очень быстро. Safari стоит того, чтобы его скачать, потому что его инструменты разработки покажут вам, что именно так долго происходит.

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