CSS и JS | трюк с версиями и Rewrite

1.02K
.
╭∩╮ (`-`) ╭∩╮
Давай еще раз разложим "по пальцам".

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

В твоем случае с "умным кэшем" да, немного разгружается канал, НО:
1) Браузер должен послать серверу запрос на файл
2) Сервер должен найти этот файл и отправить обратно браузеру заголовки, в которых в числе всего прочего будет размер и дата модификации.
3) На основе этих данных, браузер решает, грузить, или не грузить.

Если ты проверял сайт без правильных заголовков, зайди на Гугловский ПейджСпид и проверь тот сайт, Гугл будет ругаться на то, что "нужеш кэш"
---
В случае с "правильным" кэшированием, когда сервер отдает нужные заголовки, в которых указано время жизни файлов, браузер при первом заходе скачает этот файл, а далее, все то время, что указано в "жизни" он ВООБЩЕ не будет лезть на сайт и будет использовать файл из своего кэша.
Зачем обмениваться лишними заголовками (на это тоже уходит время), если сразу можно выдать нужный результат?
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Глянь еще раз на консоль хрома.
Там где статус 304 (Not modified) дале, глянь на столбец "Time", там указано время, которое было затрачено на получение этого статуса (обычно 80-150мс, в зависимости от скорости канала).
Как я писал выше, на обмен заголовками тоже тратится время.
А когда файл берется из кэша, время 0!
.
╭∩╮ (`-`) ╭∩╮
Вроде бы подумаешь "а что такое 150 мс, можно не обращать внимание".
Но это только для одного файла.
Обычно на сайте их намного больше: CSS, JS, файлы иконок, шрифты, картинки и все такое...
Сложи вместе затраченное время и оно запросто перевалит за секунду, что уже нельзя игнорировать. Это слишком много и такое НУЖНО ускорить.
.
Кадило крутится, лавэха мутится
# AlkatraZ (13.01.2015 / 12:56)
Что то ты путаешь.
Здесь как раз таки заголовки правильные и кэш работает.
1) Включи консоль отладки -> сеть
2) Обнови страницу (все перезагрузится, или будут статусы 304)
3) Потом просто перейди
Да, всё так, согласен.
Просто смутило необычное поведение, не обратил сразу внимание.
При нажатии обычной кнопки "обновить" в браузере в отладчике обычно отображается 304 статус на всех CSS. Тут же 200 статус отображается. В этом прикол. Ну в целом не существенно.
.
Кадило крутится, лавэха мутится
# AlkatraZ (13.01.2015 / 01:28)
Если больше придумать ничего нельзя, статью можно было бы и завершать
Однако, раскапывая просторы инета и копаясь в исходных кодах, я случайно наткнулся на одно очень красивое и интересное решение
Дополню недостаток. При связке apache + nginx, будет юзаться апач, что не хорошо.
.
╭∩╮ (`-`) ╭∩╮
# Simba (13.01.2015 / 13:42)
Дополню недостаток. При связке apache + nginx, будет юзаться апач, что не хорошо.
Еще раз отсылаю тебя к своей статье про кэширование.
Прочитай там в конце, я как раз про это писал.
.
Кадило крутится, лавэха мутится
# AlkatraZ (13.01.2015 / 14:04)
Еще раз отсылаю тебя к своей статье про кэширование.
Прочитай там в конце, я как раз про это писал.
Если ты про этот пост: http://johncms.com/forum/index ... 79816
То скажу про второй пункт т.к. именно он используется на всех хостингах.
Все правила mod rewrite с файлами работать будут.
Если nginx не находит файл, он кидает запрос на апач.
Вот типичный пример конфига: http://prntscr.com/5ryg1o
Думаю из него будет ясно всё.
.
(\/)____o_O____(\/)
# AlkatraZ (13.01.2015 / 13:03)
Если ты проверял сайт без правильных заголовков, зайди на Гугловский ПейджСпид и проверь тот сайт, Гугл будет ругаться на то, что "нужеш кэш"
вот https://developers.google.com/ ... sktop
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
# Koenig (13.01.2015 / 22:26)
вот https://developers.google.com/ ... sktop
Туда я еще не загружал последние наработки и кэш не оптимизирован.
Я потому и взялся за подробное исследование проблемы, ибо Гугл ругался, хотя вроде бы все было в порядке.

Ты проверяй на этом сайте, сюда я уже запилил все нужные заголовки управляющие кэшированием.
.
малоли че там гугл ругается. валидатор тоже на ксс3 ругается, кого ни будь это парит?
вот например гугл ругается что яваскрипты в хеде, ему же насрать, что если их в ноги перенести посыпется весь сайт, и что разница во времени мизернейшая.
зато вот гугл рекоммендует (и сам юзает) простейший способ ускорения каждой загрузки страницы, но этот сервис его не проверяет. проверил, на моби он не применен, и сервис этот молчит.
потом он еще ругается на "слишком близкие активные элементы", хотя они ну ни разу не активные.
И да, я согласен с Симбой, правильно - это когда браузер интересуется файлом, а кеш строго для статики - графики. то что мы его лепим везде из-за дерьмового интернета всего лишь костыль, а не правильное решение. ИМХО
Всего: 38