Перезагрузите кэшированное изображение с помощью JavaScript - PullRequest
2 голосов
/ 25 октября 2011

возможно ли использовать javascript для перезагрузки определенного изображения, которое кэшируется?

На мой сайт пользователи могут загружать новые аватары. После того, как это будет сделано, я хочу, чтобы браузер заново загрузил новый аватар, чтобы пользователь мог видеть, что изменение сделано.

На данный момент я делаю это так:

$('profilePic').src = 'flash/userImage.ashx?id=12345677&type=avatar&t=' + new Date().getTime()

userImage.ashx возвращает изображения на основе идентификатора и запрашиваемого типа. Он не использует параметр 't' - просто URL-адрес другой, и изображение перезагружается.

Это прекрасно работает на странице, где пользователь загружает свой новый аватар, но в других местах сайта он все равно будет использовать кэшированное изображение.

Я мог бы отключить кэширование для аватаров пользователей, но на самом деле я не хочу этого делать. Можно ли принудительно перезагрузить определенное кэшированное изображение?

1 Ответ

3 голосов
/ 25 октября 2011

Может быть, кеширование с помощью ETag - это решение: http://en.wikipedia.org/wiki/HTTP_ETag

Когда другой пользователь загружает страницу после обновления аватара, ETag, который он отправляет вместе с запросом изображения, отличается от ETag, сгенерированного на сервере, и поэтому должен давать ответ 200 вместо 304, поэтому изображение перезагружается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...