HTTP кэширование I небольшое исследование по теме

2.9K
.
спорить не хочу так что считайте это "имею мнение хрен оспоришь"
"header("Cache-Control: public"); "
это кривой заход
must-revalidate заставляет браузер проверять ИЗМЕНЯЛСЯ ли файл с момента его кеширования или нет.
вы тупо загоняете в кеш все и вся без проверки, в итоге может получиться так что в теме сто новых постов а у кого то грузится из кеша все те же первые пять.
(пока нет времени проверить на практике, инфу с хабра брал когда то, но тоже покопаюсь, любопытная тема)
.
╭∩╮ (`-`) ╭∩╮
ramzes (17.05.2011/01:03)
св итоге может получиться так что в теме сто новых постов а у кого то грузится из кеша все те же первые пять.
(пока нет времени проверить на практике, инфу с хабра брал когда то, но тоже покопаюсь, л
Потому, советую обратить внимание на 2-ю строчку кода, где в явном виде задается время кэширования страниц 30 секунд (чего вполне достаточно).
---
Пример - данный сайт. Приведенный код уже стоит тут.
Разве что-то плохо обновляется? Вроде никто пока не жаловался.
Зато кнопка "назад" работает на всех браузерах (которые проверял0 без перезагрузки страницы.
.
AlkatraZ, пардон, проглядел
.
В стельку трезвый
Оперу можно было не проверять. Она всегда кэшировала и кэширует страницы. И ей абсолютно пофиг на эти заголовки. При переходе назад ВСЕГДА страница берётся из кэша, а не перезагружается как во всяких фраерфоксах и прочей фигне и это как по мне так главное её достоинство которого нет в других браузерах.
.
╭∩╮ (`-`) ╭∩╮
Максим (17.05.2011/13:05)
Оперу можно было не проверять. Она всегда кэшировала и кэширует страницы. И ей абсолютно пофиг на эти заголовки. При переходе назад ВСЕГДА страница берётся из кэша, а не перезагружается как во всяких
Согласен
---
Просто приходится учитывать и остальные мнения разработчиков браузеров.
Полюбому, если мы следуем официальным рекомендациям RFC, это хорошо.
.
Процветите меня, на какой файл ставиь эти cache?
.
Let Mortal Kombat begin
head.php
.
Ставил вот так
header((stristr($agn, "msie") && stristr($agn, "windows")) ? 'Cache-Control: public; Content-type: text/html; charset=UTF-8' : 'Content-type: application/xhtml+xml; charset=UTF-8');
не получается
.
Let Mortal Kombat begin
Nurdaulet,
header("Cache-Control: public");
header("Expires: " . date("r", time() + 30));
Это выше того хедера, который в оригинале
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
seg0ro (17.05.2011/20:15)
Nurdaulet,
header("Cache-Control: public");
header("Expires: " . date("r", time() + 30));
Это выше того хедера, который в оригинале
Да
Только время кэширования можешь увеличить до 120 (2 минуты), как раз оптимально, щас тут на сайте именно так и стоит.
Всего: 87