Реклама на сайте Advertise with us

Рефреш отдельной картинки <img...> на javascript

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 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();

0
 



С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144

Ссылка на сообщениеДобавлено: 14/01/07 в 04:51       Ответить с цитатойцитата 

kbot писал:
Включение "Cache-Control: no-cache, must-revalidate\n" в заголовок HTTP ответа не помогает.


Это надо передавать не с html, а с картинкой.

0
 



С нами с 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 этого не происходит всё равно.

0
 



С нами с 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

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »