Напихал, как говорится, все, что нашел по этому вопросу
Однако эксплорер все-таки кеширует странички-результаты запросов
(так и не понял всегда или иногда) и возникает очень неприятная ситуация
когда, например, мне из базы нужно запросить новое уникальное значение,
а достается результат предыдущего запроса, из которого мне достается
предыдущее "уникальное" число..
Засада..
Здравствуйте, __Vovan_H__, Вы писали:
__V>Я пытаюсь с пом. мета-тегов сделать так, чтоб страничка (HTML) не кешировалась.. __V>Вот теги, которые есть в каждом HTML-документе моего веб-интерфейса:
__V>
__V>Напихал, как говорится, все, что нашел по этому вопросу :)
__V>Однако эксплорер все-таки кеширует странички-результаты запросов __V>(так и не понял всегда или иногда) и возникает очень неприятная ситуация __V>когда, например, мне из базы нужно запросить новое уникальное значение, __V>а достается результат предыдущего запроса, из которого мне достается __V>предыдущее "уникальное" число.. __V>Засада..
__V>Как с этим бороться..
__V>Зараннее спасибо, __V>Вован.
Как я понял из выше написаного то работать приходиться с базами
а значит страницы формируются динаимческим образом, значит есть возможность
формировать страницы таким образом чтобы в адресе присутствовал уникальный параметр
ну наподобии как это делается у банеров, тогда точно страница кешироваться не будет!
Я не знаю на чем вы пишете, но в сервлетах функция выглядит так:
// вызываем в начале сервлета, если надо чтоб не кэшировалась страницаprotected void preventCaching(HttpServletRequest request, HttpServletResponse response)
{
String protocol = request.getProtocol();
if ("HTTP/1.0".equalsIgnoreCase(protocol))
response.setHeader("Pragma", "no-cache"); // устанавливаем в заголовке ответа - не кэшироватьelse
if ("HTTP/1.1".equalsIgnoreCase(protocol))
response.setHeader("Cache-Control", "no-cache"); // возможно ли "no-store"?
response.setDateHeader("Expires", 0); // время жизни в 0
}
Просто в ссылках на страницах добавляй знак вопроса, по идее Explorer не должен делать кеш ибо страница динамическая .. )) .. так же образом работает кеширующий прокси squid
Здравствуйте, S., Вы писали:
S.>Здравствуйте, __Vovan_H__, Вы писали:
__V>>Я пытаюсь с пом. мета-тегов сделать так, чтоб страничка (HTML) не кешировалась.. __V>>Вот теги, которые есть в каждом HTML-документе моего веб-интерфейса:
__V>>
__V>>Напихал, как говорится, все, что нашел по этому вопросу
__V>>Однако эксплорер все-таки кеширует странички-результаты запросов __V>>(так и не понял всегда или иногда) и возникает очень неприятная ситуация __V>>когда, например, мне из базы нужно запросить новое уникальное значение, __V>>а достается результат предыдущего запроса, из которого мне достается __V>>предыдущее "уникальное" число.. __V>>Засада..
__V>>Как с этим бороться..
__V>>Зараннее спасибо, __V>>Вован.
S.>Как я понял из выше написаного то работать приходиться с базами S.>а значит страницы формируются динаимческим образом, значит есть возможность S.>формировать страницы таким образом чтобы в адресе присутствовал уникальный параметр S.>ну наподобии как это делается у банеров, тогда точно страница кешироваться не будет!
а есть ли в ява-скрипте какой-нить генератор случайных величин?
Здравствуйте, Plague, Вы писали:
__V>>Как с этим бороться..
P>По этому поводу конкретно можно почитать на see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html.
P>Я не знаю на чем вы пишете, но в сервлетах функция выглядит так:
P>
P> // вызываем в начале сервлета, если надо чтоб не кэшировалась страница
P> protected void preventCaching(HttpServletRequest request, HttpServletResponse response)
P> {
P> String protocol = request.getProtocol();
P> if ("HTTP/1.0".equalsIgnoreCase(protocol))
P> response.setHeader("Pragma", "no-cache"); // устанавливаем в заголовке ответа - не кэшировать
P> else
P> if ("HTTP/1.1".equalsIgnoreCase(protocol))
P> response.setHeader("Cache-Control", "no-cache"); // возможно ли "no-store"?
P> response.setDateHeader("Expires", 0); // время жизни в 0
P> }
P>
Здравствуйте, __Vovan_H__, Вы писали:
__V>..по ходу я тоже и делаю с пом. мета-тегов, тока строчка с "но-сторе" перезаписывает "но-кеш".. __V>попробую изменить.
Неее... Мета-теги и http-заголовки — это две разные песни До мета-тегов ослик может и не добраться, если решит взять страничку из кэша Поэтому лучше это делать в заголовках.
Здравствуйте, DrZubr, Вы писали:
DZ>Здравствуйте, __Vovan_H__, Вы писали:
__V>> а есть ли в ява-скрипте какой-нить генератор случайных величин?
DZ>Есессно: DZ>Math.random()
DZ>Чтобы получить целый рандом: DZ>Math.round(Math.random()*100000000)
какой вопрос, такой ответ . Думаю для случая __Vovan_H__
лучше использоавать
escape(new Date())
но, конечно, лучше это все делать через http заголовки
Здравствуйте, Plague, Вы писали:
__V>>Как с этим бороться..
P>По этому поводу конкретно можно почитать на see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html.
P>Я не знаю на чем вы пишете, но в сервлетах функция выглядит так:
P>
P> // вызываем в начале сервлета, если надо чтоб не кэшировалась страница
P> protected void preventCaching(HttpServletRequest request, HttpServletResponse response)
P> {
P> String protocol = request.getProtocol();
P> if ("HTTP/1.0".equalsIgnoreCase(protocol))
P> response.setHeader("Pragma", "no-cache"); // устанавливаем в заголовке ответа - не кэшировать
P> else
P> if ("HTTP/1.1".equalsIgnoreCase(protocol))
P> response.setHeader("Cache-Control", "no-cache"); // возможно ли "no-store"?
P> response.setDateHeader("Expires", 0); // время жизни в 0
P> }
P>
Попробуй ничего не добавлять и провести эксперемент. (Единственное cache-control:private — это в asp само добавляется, пусть так и будет, чтобы прокси по пути не кэшировали).
Сделай страничку, в которой сделай <a href="..."> на саму себя, и потыкай мышкой. И определи будет ли что-нибудь кэшироваться.
IE не нужно пинать, он сам отлично справляется с кэшированием, и с некешированием.