1 - Минимизация HTTP-запросов:
В момент открытия пользователем страницы большая часть времени уходит на загрузку всех её компонентов, таких как: HTML структура, JS скрипты, CSS, изображения, флеш и т.д. Снижение числа компонентов снижает число HTTP запросов в разы, и является ключевым фактором ускорения загрузки. Объединяйте Javascript в один и CSS файлы в одну цсс-ку. Расчёт здесь простой: 10 JS-файлов = 10 HTTP запросов, 1 JS-файл = 1 запрос, при том что большинство браузеров приостанавливает загрузку остальных елементов страницы до момента, пока каждый файл JavaScript не загрузится и не будет обрабатан. Используйте СSS-спрайты: они помгут снизить количество запросов картинок, используемых в качестве фоновых.
2 - Использование компрессии:
Наиболее популярным методом компрессии есть Gzip. Применять компрессию можно к HTML, CSS, JS, но изображения и PDF-файлы с помощью Gzip лучше не сжимать, поскольку они уже сжаты и попытка повторно сжать их с помощью Gzip - потенциально - только увеличит размеры файла. В Drupal используются модули CSS Gzip и Javascript Aggregator.
3 - Минимизация JavaScript и CSS:
Для минимизации используется практика удаления ненужных символов из кода, с целью уменьшить его размер и, таким образом, улучшить время загрузки. В коде уменьшенной версии файла будут удалены все комментарии, равно как и ненужные пробельные символы (пробел, новая строка, и табуляции). В случае с JavaScript это повышает производительность, сокращая время отклика, поскольку размер загружаемого файла уменьшается. Наиболее популярными среди инструментов минимизации кода JavaScript являются JSMin и YUI Compressor. Компрессор YUI может также уменьшать CSS. В Drupal можно использовать модуль Javascript Aggregator, при этом в Drupal версии 7 минимизация цсс включается автоматически, в момент включения компрессии css.
4 - Правильный порядок подключения стилей и скриптов в документ:
Первыми в теге
страницы должны идти метатеги иПропишите JS скрипты после всех елементов
. Проблема со сценариями состоит в том, что они блокируют параллельную загрузку. Спецификация HTTP/1.1 предполагает, что браузеры скачивают из одного хоста не более двух компонентов параллельно. Если сценарий загружается, браузер не будет начинать никакие другие загрузки, даже из разных хостов. Поэтому, насколько это возможно, вынесите все скрипты в самый низ документа.5 - Избегайте CSS Выражений и фильтров:
CSS выражения - мощный и опасный инструмент динамичного изменения CSS. Они поддерживаются Internet Explorer с 5й по 7ю версии. В случае с выражениями проблема заключается в том, что они выполняются намного чаще, чем большинство пользователей полагают. Мало того что их выполнение происходит, когда страница отображается и изменяется, но также и когда страница прокручивается, и даже тогда, когда пользователь просто перемещает курсор мыши по странице. Добавление счетчика в CSS выражение позволяет проконтролировать время и отследить частотность выполнения CSS выражения. Перемещение мыши по странице может легко создавать более 10000 выполнений выражения. Если вам нужно использовать CSS выражения, помните, что они могут влиять на производительность вашей страницы.
Проблема с фильтром AlphaImageLoader (исправление проблемы с полупрозрачным PNG в IE версий
6 - Используйте внешние JavaScript и CSS:
Использование внешних файлов ускоряет скорость загрузки страницы, поскольку JavaScript и CSS файлы кэшируются в браузере. JavaScript и CSS, встроенные в документах HTML, скачиваются каждый раз, когда запрашивается документ HTML. Единственным исключение, когда встроенные стили могут быть более предпочтительными, есть домашняя страница, в случае нескольких (или даже одного) её просмотров за сессию. В этом случае можно обнаружить, что встраивание JavaScript и CSS приводит к более быстрой загрузке у конечных пользователей.
7 - Удаление повторяющихся скриптов:
Существенно замедляет производительность ситуация, когда JavaScript файл включается дважды на одной странице. Такой сценарий не так уж и необычен, как это можно себе представить. Yahoo! утверждает, что в 2 из 10 американских сайтов из топ-листа было найдено повторение одного Javascript. В случае с Internet Explorer, если внешний скрипт включен два раза и не кэшируем, это порождает два HTTP-запроса в течение одной загрузки страницы. Даже если сценарии кэшируемые, дополнительные запросы HTTP появляются в момент загрузки страницы пользователем.