Как я могу скрыть кешированное изображение без нажатия F5?
Я делаю веб-приложение с MVC4 и С#.
Я разрешаю пользователю загружать изображение для изображения своего профиля. В этот момент мне нужно, чтобы предыдущее изображение профиля истекало, так что, когда браузер перезагружает страницу, отображается новое изображение. В настоящее время, поскольку оба изображения имеют одно и то же имя, браузер использует предыдущее изображение, которое было кэшировано вместо нового изображения.
Если я заставляю браузер перезагружаться, F5 показывает новое изображение. Как я могу убедиться, что пользователь, возвращающийся на страницу своего профиля, видит новое изображение, а не тот, что находится в кеше браузера, не нажимая F5?
Ответы
Ответ 1
Вы можете добавить фиктивный параметр в конец имени файла изображения. Например,
<img src="...\avatar.jpg?d=7615833">
где число является случайным или временным. Он будет проигнорирован, но присутствие заставит браузер перезагрузить изображение.
Ответ 2
При сохранении изображения на сервере добавьте (статический) бит случайного текста в имя файла и повторно сгенерируйте его при изменении изображения. Таким образом, браузер будет кэшировать изображение, когда он будет тем же самым, и перезагрузить его, когда он изменится, что дает желаемое поведение без добавления ненужного времени загрузки страницы.