Показать сообщение отдельно
  #1 (permalink)  
Старый 02.10.2013, 16:05
Новичок на форуме
Отправить личное сообщение для buhpro Посмотреть профиль Найти все сообщения от buhpro
 
Регистрация: 02.10.2013
Сообщений: 2

JS загружает изображение всегда с локального кэша - почему?
В общем для экономии трафика изображения возвращаю через ПХП. В заголовке возвращаю Last-Modified: со временем файла изображения, затем анализирую параметр при следующем обращении "If-Modified-Since" и если их время одинаково - то возвращаю код 304.
Если изображение загружается в HTML - то все ок. Т.е. первый раз изображение грузится с кодом 200, а затем (если файл не изменился) с кодом 304.
Если же изображение загружается из JS - то в первый раз код 200, а в последующие ВСЕГДА код 200 и сообщение что браузер берет его из локального кэша - т.е. изображение застревает в кэше браузера навечно.
Как заставить JS обращаться к серверу при последующих вызовах а не брать все из локального кэша ???

Вот пример корректной работы из HTML

<img src="/pages/list_foto.php?foto=../foto/avtoisgermanii.jpg&size=80">



А вот неправильной работы из JS:

pic1 = new Image();

pic1.src = '/pages/list_foto.php?foto=../foto/avtoisgermanii.jpg&size=200';

//		$('<img src="' + src + '">').appendTo('.full');


Если IMG в HTML - то браузер действует так: В первый раз запрашивает изображение с сервера и кэширует его, в последующие разы делает запрос на сервер с пар-ром If-Modified-Since, в котором указывает время создания файла из своего кэша и если получает с сервера код 304 - то изображение берется с локального кэша.

Если IMG добавляется из JS - то браузер в первый раз запрашивает изображение с сервера и кэширует его, а в последующие разы на сервер вообще не обращается а ВСЕГДА берет изображение из кэша.

Почему ????????
Ответить с цитированием