Соболев Сергей При первом посещении страницы она по умолчанию загружается в кеш. При следующих запросах страницы она для отображения читается из кеша. Кеширование ускоряет просмотр посещенных ранее страниц. Когда содержимое страницы изменяется сервером динамически кеширование необходимо отменить иначе пользователь не увидит изменений. Кеширование происходит на машине клиента используемым им броузером. Кеш броузера при необходимости можно очистить с помощью предусмотреных в нем средств. Например, в MS IE Tools->Internet Options->General->Temporary Internet files->Delete Files... Также могут кешироваться страницы прокси-сервером, через который осуществляется выход в Интернет. В этом случае можно проконсультироваться у администратора в ведении которого находится прокси-сервер. Для отмены кеширования используем соответствующие праметры тега META. Задаем срок истечения действия страницы заведомо устаревшим: <meta HTTP-EQUIV="Expires" CONTENT=Tue, 02 Jan 1996 01:00:00 GMT> или <meta HTTP-EQUIV="Expires" CONTENT="0"> Явно отменяем кеширование: <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"> - отмена кеширования прокси-сервером <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> - отмена кеширования в броузере Пример: <HTML> <HEAD> ... <meta HTTP-EQUIV="Expires" CONTENT="0"> <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"> <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> ... </HEAD> ...
В ASP-коде модуле срок истечения действия задается в виде <%Response.Expires=0%>, <%Response.Expiresabsolute=Now()-1%> (см. Описание объекта Response). Для борьбы с кешированием можно задавать параметры тега МETA, например: <%Response.AddHeader "pragma", "no-cache">%. Для предотвращения кеширования на прокси-серверах предназначено свойство Response.CacheControl, принимающее одно из значений: Private - запрещает кеширование Public - разрешает кеширование К сожалению не все прокси-сервера правильно воспринимают это свойство. Пример: <% Response.Expires=0 Response.CacheControl="private" Response.AddHeader "Pragma","no-cache" Response.ContentType="text/html" %>
Методы объекта Response должны выполняться до посылки броузеру HTML-кода. При использовании JavaScript эффективно применение принудительной перезагрузки страницы с сервера с помощью document.location.reload(true). Иногда в запрос страницы добавляют фиктивный параметр, значение которого всегда уникально. Таким значением может быть время. В результате каждый запрос страницы отличается от предыдушего и кеширование обходится. Для предотвращения кеширования иногда приходится изменять способ формирования страниц и их взаимодействия друг с другом.
Источник: http://prosto.pp.ru
|