Уменьшить Запросы HTTP или нет?

Теоретический вопрос:
Все мы знаем о pro's уменьшения и объединения файлов JavaScript для сокращения Запросов HTTP для ускорения веб-сайта. Но когда популярными библиотеками JavaScript пользуются (jQuery, например), не слишком глупо предположить, что они уже были загружены на клиентский компьютер от другой страницы.

Таким образом, каков должен быть preferrered? Как делает больших парней в промышленном дескрипторе это?

A) Объедините и уменьшите каждый сценарий в крупный и служите ему от моего собственного CDN.

B) Объедините все "самозаписанные" сценарии в один файл и используйте доступный CDN's библиотек, если это возможно.

Спасибо!

21
задан Industrial 2 April 2011 в 09:37
поделиться

7 ответов

  • «Объедините и минимизируйте каждый сценарий в один массивный и обслуживайте его из моего собственного CDN »

    Если у вас есть CDN, о чем мы говорим? :) Вы имеете в виду сервер, не так ли?

  • «Как большие парни в индустрии справляются с этим?»

    Большие парни всегда используют свои собственные серверы.

  • «... не слишком глупо предположить, что они уже были загружены на клиентский компьютер с другой страницы.»

    К сожалению, это так. Факты:

    • 40-60% пользователей имеют пустой кеш.
    • браузеры; ограничения кеш-памяти малы
    • используются разные версии библиотек , кеширование происходит только в том случае, если они Ресурс match
    • из нового домена создает поиск DNS , который выполняется медленно
    • + вам необходимо управлять зависимостями
13
ответ дан 29 November 2019 в 21:12
поделиться

Я думаю, это зависит от вашего сайта:

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

Лучший способ узнать, что делать, - это проверить, какая комбинация методов экономит вам больше всего трафика / соединений.

P.S .: Мне лично не нравится идея позволить другим людям обслуживать файлы для моей веб-страницы, потому что что произойдет, если CDN выйдет из строя, но ваш сервер останется живым? Если для вас это не проблема, попробуйте сервер всех используемых вами библиотек из надежного CDN.

6
ответ дан 29 November 2019 в 21:12
поделиться

Я думаю, это сводится к нескольким вещам:

  1. Сколько страниц используют код на вашем сайте
  2. Качество CDN
  3. Сколько это кода

Также существует разница между использование популярных пакетов Javascript, таких как jQuery, и использование личного пакета, который будет доступен только посетителям, посетившим ваш сайт.

Повышение производительности может происходить в двух местах: 1) кеш браузера и 2) кеш DNS, который, даже если файл не хранится локально, DNS-сервер имеет маршрут, который минимизирует время запроса или даже временно обслуживает файл.

Я бы посоветовал использовать CDN и размещать файлы локально. В зависимости от ваших ресурсов (оборудование / пропускная способность) вам все равно может потребоваться использование CDN. Было бы неплохо использовать планировщики на стороне сервера для проверки статуса CDN и перенаправления пути, если это применимо.

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

И последнее, что нужно сделать - использовать заголовки Expires, поскольку все это не имеет значения, если вы не оптимизируете это. Это то, что действительно снизит скорость для вернувшихся посетителей с включенным кешем. YSlow - хорошее дополнение для Firefox, которое поможет оценить вашу производительность загрузки.


Чтобы ответить на ваш вопрос: Уменьшите количество HTTP-запросов, но сделайте свою собственную оценку размера файла JS.

(Крайность) Вам не нужен один JS-файл размером 10 МБ, иначе ваш сайт будет загружаться слишком долго. Вы также не хотите 1000 файлов размером 10 КБ из-за накладных расходов HTTP. Опять же, используйте это, чтобы проиллюстрировать, что вам нужен баланс между размером и количеством файлов - и, как я сказал ранее, упакуйте их в требуемую производительность по сравнению с желаемой.

3
ответ дан 29 November 2019 в 21:12
поделиться

Нет особой причины, по которой получение одного скрипта было бы быстрее, чем его разделение. Это происходит потому, что одновременные загрузки браузера ограничены, но не на одну.

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

При прочих равных вариант B выглядит наилучшим.

2
ответ дан 29 November 2019 в 21:12
поделиться

В частности, на ваш вопрос о том, как крупные игроки отрасли обрабатывают сценарии на стороне клиента, вы всегда можете посмотреть и увидеть. stackoverflow.com кажется прекрасным, полагаясь на версию jquery lib от Google. Другие решительно этого не делают ....

2
ответ дан 29 November 2019 в 21:12
поделиться

Я думаю, что лучший подход - использовать минифицированный файл 'application.js' (содержащий весь javascript, специфичный для приложения), а затем использовать сервис, такой как Google AJAX Libraries API (найден здесь) для загрузки jQuery, Prototype и т.д.

4
ответ дан 29 November 2019 в 21:12
поделиться

Омар аль-Забир ведет сайт под названием pageflakes, на котором есть множество статей о том, как повысить производительность. Одна из них, в частности, объясняет, как сжимать и комбинировать всевозможные вещи на стороне сервера перед отправкой клиенту.

Вы также можете использовать спрайты изображений css для уменьшения HTTP-запросов. Они очень помогают для часто используемых изображений.

* У меня, конечно, нет огромного производственного сайта, но эти вещи определенно помогли сэкономить на пропускной способности.

3
ответ дан 29 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

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