Как лучше предварительно установить ИЛИ предварительно загрузить ИЛИ кэшировать библиотеку JavaScript для оптимизации производительности? - PullRequest
2 голосов
/ 15 марта 2010

Я работаю для интранет-приложения. Поэтому у меня есть некоторый контроль над клиентскими машинами. Используемая мной библиотека JavaScript имеет несколько большие размеры. Я хотел бы предварительно установить ИЛИ предварительно загрузить ИЛИ кэшировать библиотеку JavaScript на каждом компьютере (а также на каждом браузере), чтобы он не перемещался для каждого запроса. Я знаю, что браузеры кэшируют библиотеку JavaScript для последующих запросов, но я бы хотел, чтобы библиотека кэшировалась один раз для всех последующих запросов, сеансов и пользователей.

Каков наилучший механизм для достижения этого?

Ответы [ 2 ]

4 голосов
/ 15 марта 2010

Для этого вам не нужен доступ к клиентским машинам. Все лучшие практики относятся к серверу:

  • GZip все;
  • Свернуть все Javascript и CSS;
  • Минимизируйте количество внешних HTTP-запросов. Попытайтесь сохранить их, скажем, в 1-5 файлах JS, 1-5 файлах CSS и нескольких изображениях. Если у вас много изображений, вы можете использовать CSS spriting ;
  • Версия ваших изображений, CSS и Javascript; и
  • Использовать заголовок Far Futures Expires для всех изображений, CSS и Javascript.

Последние два пункта означают, что содержимое кэшируется до тех пор, пока оно не изменится. Вы можете использовать фактический номер версии для официальных выпусков (например, jquery-1.4.2.min.js, 1.4.2 - это номер версии). Для кода для вашего собственного приложения часто вы будете использовать что-то вроде mtime (время последнего изменения) файла в качестве строки запроса. Например:

<script type="text/javascript" src="/js/code.js?1233454356"></script>

После того, как ? сгенерировано из измененного времени файла. Клиент загружает его один раз, и из-за далекого будущего заголовка Expires он не будет загружен снова, пока не изменится номер версии, что не произойдет, пока файл не изменится.

0 голосов
/ 27 сентября 2013

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

...