Оптимизация запросов JavaScript и CSS - PullRequest
9 голосов
/ 03 ноября 2010

Мне нужно оптимизировать скорость загрузки нескольких существующих сайтов. Одна из проблем, с которыми я сталкиваюсь, это количество запросов на страницу. Веб-сайты имеют 7 или более различных типов страниц, которые должны загружать различный набор CSS и JavaScript, потому что они содержат разные виджеты или функции. В настоящее время каждый виджет или функциональность имеет свой собственный файл JavaScript. Я планирую объединить и минимизировать файлы, чтобы иметь меньше запросов.

  1. Будет ли хорошей практикой объединять и минимизировать все javascript-скрипты, необходимые для каждого типа страниц, в один файл (и делать то же самое для css)? например
    • На домашней странице есть только один homepage.js,
    • страниц списка есть только listing.js,
    • подробные страницы имеют только detail.js,
    • и т.д.
  2. Лучше ли объединять только те файлы, которые всегда используются вместе? например
    • jquery.js + jquery.cookie.js + common.js,
    • list.js + paging.js + favorite.js,
    • detail.js + favorite.js,
    • и т.д.
  3. Как насчет наличия одного файла для всех javascript-скриптов, которые должны загружаться в заголовке, и одного файла для всех javascript-скриптов, которые должны загружаться в конце тела, например,
    • init.js переходит к <head> и do.js переходит к <body>.
  4. Как насчет наличия одного файла для общих функций и одного для административных функций, который загружается, если у пользователя есть определенные разрешения?
  5. Существуют ли какие-либо стратегии для баланса между 1., 2., 3. и 4.?
  6. Какое рекомендуемое количество запросов javascript и css для страницы?

Я рассматриваю крупные сайты, например, порталы или социальные сети.

(Кстати, есть некоторые библиотеки, запросы которых я не могу контролировать, например, TinyMCE или google maps).

Ответы [ 11 ]

0 голосов
/ 03 ноября 2010

В общем, я объединяю и минимизирую все скрипты на сайте и обслуживаю только два запроса - один для JS и один для CSS. Исключением из этого правила является то, что на определенной странице есть сценарий значительного размера, который запускается только там - в этом случае его следует загружать отдельно.

Загрузите все JS-скрипты внизу вашей страницы, чтобы скрипты не блокировали загрузку страницы.

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