Учитывая только скорость страницы, в какой момент CSS или JS достаточно велики, чтобы вывести их наружу - PullRequest
5 голосов
/ 31 июля 2011

Обычным советом является сохранение внешних файлов CSS и JS. Причина: то, что вы теряете в дополнительном HTTP-запросе *, вы часто получаете обратно, не загружая кешируемый статический контент (которым обычно являются CSS и JS).

Однако, чем меньше ваш внешний файл, тем больше штрафует дополнительный HTTP-запрос - даже если это ответ 304 Не изменен . Таким образом, чем меньше внешний файл, тем больше поводов для предпочтения вставки содержимого CSS и JS, по крайней мере, когда скорость является вашей главной задачей.

Я провел несколько тестов. Не вдаваясь в детали, мои результаты выглядят так:

External File Size    Average Gain
----------------------------------
               1KB          -3.7ms
               2KB          -3.7ms
               4KB          -4.0ms
               8KB          -3.0ms
              16KB          -2.7ms
              32KB           1.0ms
              64KB           2.7ms
             128KB          10.0ms
             256KB         493.7ms
             512KB        1047.0ms
            1024KB        2569.7ms

Мой общий вывод заключается в том, что использование внешних файлов на самом деле не имеет значения, пока они не получат BIG . И под БОЛЬШОЙ я имею в виду диапазон 50-100 КБ ... И это минимизировано и сжато, если вы воспользуетесь этим.

Может ли кто-нибудь подтвердить или опровергнуть эти результаты дополнительными данными?

(* Предполагая, что вы не используете заголовок HTTP "Expires")

1 Ответ

2 голосов
/ 31 июля 2011

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

Вы можете даже решить это математически, если хотите, предполагая, что средняя скорость соединения составляет 5 Мбит / с итипичное время прохождения туда и обратно составляет 100 мс.С этими допущениями вы увидите, что вы можете добавить до 62 500 байт к полезной нагрузке первого запроса, прежде чем затраты на выполнение второго запроса станут оправданными.И это очень хорошо коррелирует с вашими числами.

Однако это не означает, что «использование внешних файлов на самом деле не имеет значения», поскольку есть другие причины использовать их помимо кэширования / загрузки страницыаспект.Например, они помогают сохранить ваш код и общую структуру сайта в нормальном состоянии, особенно если у вас есть общие стили CSS и утилиты JavaScript, которые повторно используются на нескольких страницах.Я бы сказал, что это, по крайней мере, так же важно, как любой небольшой выигрыш или убыток во время загрузки страницы, который вы можете получить, используя / не используя внешние файлы.Поэтому в этом контексте использование внешних файлов имеет смысл даже для небольших ресурсов.

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