| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Вёрстка веб-сайтов > Почему мой сайт не сохраняется в кэше |
| Автор: Tagir 23.8.2004, 07:20 |
| У меня есть два адреса сайта: временный и постоянный (*.ru). C временного адреса страница грузится в кэш и соответственно работает быстро. С постояного адреса страница в кэш не грузится, из этого все постоянно подгружается заново и работа тормозится. По обоим адресам с сервера файлы берутся из одного и того же места. Подскажите как это лечить. |
| Автор: Tagir 23.8.2004, 13:35 |
| Может дело в провайдере. Может у него кэшируется как-то не так. |
| Автор: Aliance 23.8.2004, 21:00 |
| У провайдера стоит no-cache, видимо. уточни у администратора хостинга. |
| Автор: Tagir 30.8.2004, 12:03 |
| У провайдера кэш на сутки. Я уже и не знаю, что делать. У меня XP, я уже все ссылки удалил. Не помогает. Может он где-то в хитром месте сохраняет? |
| Автор: Tagir 2.9.2004, 07:03 |
| Я был в командировке в другом городе. Провайдер другой. Но сайт работает также глючено (не сохраняется в кэше). Может у меня в коде чего-то не хватает. Посмотрите, может подскажите что-нибудь. http://www.stelstroy-ryazan.ru |
| Автор: Desdichado 1.10.2004, 18:31 |
| Эта задача возникает для PHP-скриптов вызываемых без параметров или являющимися индексами директорий, однако формирующих данные персонально под пользователя (например на основе cookies или user agent) или работающих на основе быстро изменяющихся данных. По спецификации HTTP/1.1 мы можем управлять следующими полями: Expires - Задает дату истечения срока годности документа. Задание ее в прошлом определяет запрет кэш для данной страницы. Cache-control: no-cache - Управление кэш. Значение no-cache определяет запрет кэш данной страницы. Для версии протокола HTTP/1.0 действует "Pragma: no-cache". Last-Modified - Дата послднего изменения содержимого. Поле актуально только для статических страниц. Apache заменяет это поле значением поля Date для динамически генерируемых страниц, в том числе для страниц содержащих SSI. На сайте www.php.net дается следующий код для запрета кеширования. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Pragma: no-cache"); // HTTP/1.0 Однако, я считаю, что данный заголовок избыточен. В большинстве случаев достаточно: header("Expires: Thu, 01 Jan 1970 00:00:01 GMT"); Чтобы пометить документ как "уже устаревший" следует установить Expires равным полю Date. header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT"); Ну и не следует забывать, что формы, запрошенные по POST также не подлежат кэшированию. |