Агрессивное кэширование против объединения файлов Javascript для сайта в интрасети - PullRequest
2 голосов
/ 17 ноября 2011

Я работаю над улучшением производительности страницы внутренней сети моей компании.Мы стремимся (динамически) объединить наши файлы javascript, а также кэшировать их на 30+ дней.Страница запускается при входе в систему для всех.

Один из моих коллег спросил, стоит ли время объединять файлы JS, если мы уже кэшируем их в течение месяца.Он не решается сделать и то, и другое, потому что инструмент объединения работает на стороне сервера и не работает на нашем рабочем столе, что требует некоторого хакерского обхода.видел для внешних сайтов.Поскольку мы находимся в закрытой системе, кажется, что мы не получим много пользы от объединения файлов после заполнения каждого кеша.Что объединит файлы, чтобы купить нас, что агрессивное кэширование не будет?

Мы находимся на IE8, если это имеет какое-то значение.

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011
  1. Объедините все ваши файлы JavaScript в один большой файл (таким образом, сводя к минимуму количество запросов к серверу) и установите для его имени что-то вроде «application_234234.js»;число представляет собой последний раз, когда вы изменили файл, и поможет браузеру узнать, что это новый файл (таким образом, кеша при его изменении нет).
  2. Добавьте заголовок Expires или Cache-Control (установите его действительно далеко в будущем).Поскольку имя файла будет меняться каждый раз, когда вы будете его изменять, вам не о чем беспокоиться.
  3. И последнее, что не менее важно, сожмите и скопируйте файл JavaScript.

ЭтиВот несколько важных советов, но узнайте больше о лучших практиках: http://developer.yahoo.com/performance/rules.html

2 голосов
/ 17 ноября 2011

Наиболее заметное влияние наличия нескольких файлов JavaScript - это время, необходимое для отображения страницы. Каждый тег сценария обрабатывается отдельно и добавляет время к общему процессу рендеринга.

Довольно хороший ответ можно найти здесь @ несколько против одного тега сценария

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

Я бы посоветовал протестировать время отрисовки страницы в обоих случаях и посмотреть, сколько улучшений вы видите в вашем случае, и принять решение на основе этой информации.

В качестве полезного примера приведем некоторые статистические данные из Xpedite (инструмент минимизации времени выполнения, который я создал некоторое время назад); обратите внимание на разницу во времени от загрузки до готовности для комбинированных и некомбинированных сценариев.

...