#javascript #mootools
#javascript #mootools
Вопрос:
можно ли использовать javascript для перезагрузки определенного изображения, которое находится в кэше?
На моем сайте пользователи могут загружать новые аватары. После того, как это будет сделано, я хочу, чтобы браузер повторно загрузил новый аватар, чтобы пользователь мог видеть, что изменения внесены.
На данный момент я делаю это так:
$('profilePic').src = 'flash/userImage.ashx?id=12345677amp;type=avataramp;t=' new Date().getTime()
UserImage.ashx возвращает изображения на основе идентификатора и запрашиваемого типа. Он не использует параметр ‘t’ — это просто для того, чтобы URL-адрес отличался, поэтому изображение перезагружается.
Это отлично работает на странице, где пользователь загружает свой новый аватар, но в других местах сайта он все равно будет использовать кэшированное изображение.
Я мог бы отключить кэширование для пользовательских аватаров, но я действительно не хочу этого делать. Можно ли принудительно перезагрузить конкретное кэшированное изображение?
Ответ №1:
Возможно, кэширование с помощью ETag является решением: http://en.wikipedia.org/wiki/HTTP_ETag
Когда другие пользователи загружают страницу после обновления аватара, ETag, который он отправляет с запросом на изображение, отличается от ETag, сгенерированного на сервере, и поэтому должен привести к ответу 200 вместо 304, поэтому изображение перезагружается.