С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 14/01/07 в 04:30 |
Как сделать?
В одном и том же контейнере <img...> показываю две картинки, переключаю нажатием на кнопку. Проблема в том, что файлы картинок на сервере меняются, а имена остаются прежними. А браузер при замене свойства src на другое (но уже закешированное) не проверяет, поменялся ли файл на сервере.
Включение "Cache-Control: no-cache, must-revalidate\n" в заголовок HTTP ответа не помогает.
Помогает добавление к имени картинки случайного параметра, например:
image.src="$srcurl?anticache="+(new Date()).getTime();
Но всё же хочется найти человеческий способ, что-то вроде:
image.src.reload();
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 14/01/07 в 04:51 |
kbot писал: | Включение "Cache-Control: no-cache, must-revalidate\n" в заголовок HTTP ответа не помогает.
|
Это надо передавать не с html, а с картинкой.
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 14/01/07 в 11:58 |
lega_cobra писал: | Это надо передавать не с html, а с картинкой. |
Естественно, с картинкой. Я это передаю с именно картинкой.
Картинка отдаётся скриптом, то есть при запросе картинки веб-сервер передаёт управление скрипту, который сам формирует HTTP заголовки, а после этого тупо принтит содержимое файла картинки.
После добавления в заголовок "Cache-Control: no-cache, must-revalidate\n" поведение браузера действительно меняется. Если я в строке браузера ввожу УРЛ этой картинки, то браузер проверяет, изменилась ли она, и если изменилась, то полностью загружает, то есть всё как положено (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9).
Но при замене атрибута .src с помощью javascript этого не происходит всё равно.
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 14/01/07 в 12:06 |
Я обычно передаю так с картинкой:
Код: |
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu Jan 01 00:00:00 1970 GMT
|
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |