Forum Webscript.Ru

Дизайн и Верстка => Всё о Html => Тема начата: Alecsey2 от 09 Января 2004, 15:52:31

Название: Проблема с кэшированием...
Отправлено: Alecsey2 от 09 Января 2004, 15:52:31
Суть:
Есть php-скрипт генерирующий картинку в файл.
Есть php-страница вызывающая скрипт и отображающая  картинку из файла.
Проблема в том что при повторном запуске (например уходим вперед по ссылке, а затем жмем кнопку браузера back) скрипт сохраняет на диск новую картинку, но в браузере отображаеться старая, похоже из локального кэша.
(Есть инструкции META "Pragma: no-cache", "Expires: 0", "Cache-Control: post-check=0, pre-check=0",
текстовая инфа отображается актуально,
браузер IE.6)
Как заставить браузер грузить картинку с диска?
Название: Проблема с кэшированием...
Отправлено: Alecsey2 от 09 Января 2004, 15:55:02
Да, забыл пояснить, что картинка выводится с помощью html-тега IMG
Название: Проблема с кэшированием...
Отправлено: Yukko от 09 Января 2004, 16:10:30
Может, кто победил это по-другому и опишет свой способ, то, к чему я пришел:
Создал скрипт на php, который выводит картинку, но перед этим отсылает
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("Content-type: image/jpeg");

и делает:
readfile("$_GET[\'name\']");

в html пишем


Все очень упрощенно, тут только идея.
Название: Проблема с кэшированием...
Отправлено: Phoinix от 09 Января 2004, 16:20:09
Yukko
Я смог победить только добавив дополнительную переменную в строке браузера, которая является случайной последовательностью, т.к., насколько я понимаю, страница динамическая, то можно добавить данную переменную во все ссылки...
Название: Проблема с кэшированием...
Отправлено: Yukko от 09 Января 2004, 16:47:07
Цитировать
Phoinix:
 смог победить только добавив дополнительную переменную в строке браузера

Страницы сгенереные GET POST не кэшируются, но у при тесте в разных браузерах... короче давно это было, но я заморочился с Оперой, которой случайная последоватьльность была до глубины ее кэша. Не знаю, может, у меня версия какая неправильная была... а еще одно дело GET/POST запрос  на страницу, другое дело статический запрос на рисунок: www.myserver/my.gif его тоже надо посредством GET POST выводить
Название: Проблема с кэшированием...
Отправлено: Alone от 09 Января 2004, 17:08:08
Цитировать
надо посредством GET POST выводить

[OFF]сильно сказано...
нужно будет запомнить :D[/OFF]
чем отличается "запрос на страницу" от "запрос на рисунок"?
заголовки это конечно правильно,
но замечалось что невсегда срабатывает, то кеш на сервере игнорирует, то кеш браузера, то кеш прокси...
рандомное значение в строке запроса всегда(почти?) рулило
Название: Проблема с кэшированием...
Отправлено: Yukko от 09 Января 2004, 17:12:47
Alone
каждый понял, что я имел в виду... :)

Цитировать
Alone:
всегда(почти?) рулило

если бы не возникло такой траблы, то я бы даже не морочился :) :) :) можно поступить по-другому, взять и скомбинировать все способы :)
Название: Проблема с кэшированием...
Отправлено: Phoinix от 09 Января 2004, 17:29:52
Цитировать
Страницы сгенереные GET POST не кэшируются

Значит у меня тоже какой-то браузер левый :)
Кеширует гад страницы сгенеренные GET и POST, если параметры те же...
Название: Проблема с кэшированием...
Отправлено: Alecsey2 от 11 Января 2004, 19:11:48
Цитировать
Yukko:
и делает:

readfile("$_GET[\'name\']");


в html пишем


Все очень упрощенно, тут только идея.



Теперь сплю спокойно... :)
Спасибо за идею!