Как уменьшить расходы на загрузку больших JS-библиотек?

Если я использую большую Javascript-библиотеку для своей страницы, как я могу убедиться, что это не наносит ущерба использованию пользователем сайта?

23 голоса | спросил Macha 15 J000000Thursday10 2010, 19:10:05

5 ответов


25

Есть 4 вещи, которые вы можете сделать.

  1. Измените свой JS-файл. Это позволяет удалить все комментарии и пробелы, чтобы уменьшить их размер.
  2. Объедините файлы JS на каждой странице, чтобы было только 1 файл.
  3. Используйте пакет для gzip файлов при их отправке. Это сделает их еще меньше
  4. Поместите Javascript, который не требуется сразу в нижней части страницы, чтобы он загружался в конце. Это позволит пользователю видеть и использовать страницу еще до полной загрузки JS.

И некоторые другие люди предложили:

  • Apache автоматически обработает сжатие (и кэширование сжатый контент), которые в массовом порядке упрощает управление файлами
  • Правильное кэширование JavaScript принесет большие выгоды.
  • Домены подстановочных знаков (с несколькими URI) позволит больше параллельных соединения. Предварительная выборка - это не просто для изображений /
ответил Ben Hoffman 15 J000000Thursday10 2010, 20:06:41
21

Если вы используете общие библиотеки (например, jQuery, Prototype или Dojo), вы можете разгрузить файл в Google и сделать их служит , это дает вам несколько преимуществ:

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

Примечание. Запрошенная вами версия может существенно повлиять на характеристики кэширования: запрос jQuery 1.4.2 предоставит вам файл, который можно кэшировать в течение года, но 1.4 можно кэшировать только на час.

ответил Cebjyre 15 J000000Thursday10 2010, 20:41:36
6

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

ответил txwikinger 15 J000000Thursday10 2010, 19:22:22
4

В дополнение к приведенным выше ответам вы можете использовать Google Closure Compiler для автоматического сжатия и оптимизируйте JS при интеграции с другими сторонними библиотеками (jQuery, YUI, mootools и т. д.).

ответил theycallmemorty 15 J000000Thursday10 2010, 23:51:57
0

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

Как отмечает Стив Соудерс в своем блоге с высокоэффективными веб-сайтами -

  

... в некоторых ситуациях это стоит   взять кучу ресурсов, которые   загружается в одном домене   и разделить их на несколько   домены. Я называю это доменное очертание.   Это позволяет увеличить количество ресурсов   сканируется параллельно, уменьшая   общее время загрузки страницы.

в другом месте он пишет ..

  

Браузеры открывают ограниченное количество   соединений на домен ... Разделение или   осколки, запросы через два   доменов, в отличие от одного домена,   приводит к более быстрой странице, особенно   в IE 6 & 7

ответил mvark 17 J000000Saturday10 2010, 18:00:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132