Мы минимизируем, объединяем и распаковываем JS нашего сайта (что на самом деле составляет около 17 файлов, объединенных в два файла, один для всего нашего кода и один для библиотечного кода, такого как mootools и clientcide). Это значительно сокращает время загрузки сценариев. Сжатие и слияние выполняются, и кешируются на сервере, поэтому разработка вообще не замедляется. Наш общий JS для положительных героев около 50K после того, как все сжато, как указано выше.
Мы также устанавливаем длительное время истечения для файлов, у всех из которых есть номер версии, поэтому, когда мы вносим изменение, мы набираем номер версии (у нас есть простой вариант, чтобы упростить его), и пользователи вынуждены получать свежие версия и после загрузки они кэшируются браузером.
Кроме того, мы сделали шаг к тому, чтобы поместить наш JS в нижний колонтитул страницы, это позволяет всему рендериться намного быстрее и дает пользователю что-то посмотреть, пока мы загружаем JS.
На некоторых отдельных страницах есть необходимые сценарии (формы поиска и т. Д.), Которые обрабатываются так же, как указано выше (т. Е. Все необходимые файлы будут объединены, уменьшены, сжаты), но остальной код оставлен как есть. мы можем использовать кэширование. Таким образом, в этом случае мы могли бы загрузить 3 JS-файла, сайт, библиотеку и пользовательский код для этих страниц.