2012-01-14 3 views
3

У меня есть примерно 10 ссылок на CSS и JavaScript (JS) файлы на моем сайте, и я могу их комбинировать, поэтому для загрузки клиентом веб-браузера есть только 2 файла CSS и JS. Объединение файлов уменьшит количество HTTP-запросов и уменьшит время загрузки страницы.Уменьшает ли количество запросов HTTP, если они кэшированы?

Мой вопрос: если эти 10 файлов CSS и JS будут кэшироваться после загрузки первой страницы, будет ли время загрузки второй страницы быть таким же быстрым, как на странице, содержащей только 2 комбинированных файла CSS и JS? Я бы так подумал, потому что кэшированные файлы не требуют HTTP-запроса. Я понимаю, что есть командные скрипты, которые могут автоматизировать объединение CSS и JS-файлов для развертывания, но это осложнит будущие младшие программисты/веб-дизайнеры, которые могут работать на веб-сайте. Веб-сайт предназначен для благотворительной организации, и очень мало контроля и доступных человеческих ресурсов, чтобы держать вещи под контролем и в порядке.

Обновление: Мои предположения, что использование кэшированного файла не требует HTTP-кода.

ответ

4

Да, вы должны уменьшить количество запросов, даже если ресурсы кэшированы. Две причин:

1: Там это небольшое падение производительности (в файл) даже для кэшированных файлов

Если профиль вашего сайта, вы увидите, что для каждого ресурса есть еще туда и обратно к тому, чтобы сервер. Если ресурс не обновлен, сервер вернет код статуса HTTP 304 - Not Modified, иначе он вернет код статуса HTTP 200 (и сам ресурс).

Вот пример трассировка производится профилирующими переполнению стеки домашней CSS файлы:

enter image description here

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

2: посетители Первого времени также получат пользу от этой оптимизации

Это улучшит скорость загрузки страницы для посетителей впервые и кто с несвежей кэш.

+0

сервер вернет код статуса HTTP 304 - не изменен. Небольшая коррекция. Все это делает браузер, а не сервер. Вы можете попробовать это с помощью браузера, у которого отключен кеш. В этом случае сервер всегда будет возвращать 200 - ОК. Так что на самом деле сервер всегда возвращает 200. За исключением некоторых случаев, конечно. – Cyberon

1

Да, браузеры получат размер содержимого, чтобы определить, был ли файл изменен или нет. Поэтому независимо от того, что браузер уже кэшировал его, он всегда будет отправлять HTTP-запросы.

0

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

Конечно, каждый раз, когда пользователь очищает свой кеш, 10 файлов будут обслуживаться снова, тем самым вызывая больше HTTP-запросов.

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

Смежные вопросы