Куда вставлять блоки скриптов - PullRequest
1 голос
/ 14 мая 2009

Дилема такая:

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

Если я включу / вставлю блоки скриптов, где это необходимо, javascript будет распространен по всему проекту.

Я борюсь с тем, где сохранить правильный баланс. Кто-нибудь?

Ответы [ 5 ]

1 голос
/ 14 мая 2009

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

Обязательно сжимайте / минимизируйте все свои внешние библиотеки JavaScript, используя что-то вроде YUI Compressor или другой инструмент, упомянутый в Что вы используете для минимизации и сжатия библиотек JavaScript? .

1 голос
/ 14 мая 2009

Если проблема заключается в раздутии размера вашей страницы, то, возможно, вам следует переместить Javascript в отдельный файл js (или даже несколько), на который ссылаются страницы, которым он нужен. Это означает, что у вас будет больше HTTP-запросов для новых посетителей, но это позволяет браузеру кэшировать Javascript, так что ему не нужно извлекать его снова для каждой страницы вашего сайта.

1 голос
/ 14 мая 2009

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

Конечно, если вы не размещаете содержимое файлов JS на самой странице! : -)

0 голосов
/ 14 июля 2009

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

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

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

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

0 голосов
/ 14 мая 2009

это не такая уж большая проблема, если вы минимизируете свои скрипты, такие большие, как jquery, составляют около 50 тыс.

...