У меня есть изображение на странице. Я использую плагин формы Ajax для загрузки единственного изображения, и после того, как фотография загрузила, я хотел бы обновить изображение, которое уже находится на странице.
$("#profilePicForm").ajaxForm(function() {
alert("Photo updated");
$("#newPhotoForm").slideToggle();
$("#profilePic img").load(function() {
$(this).hide();
$(this).fadeIn('slow');
}).attr('src', '/Content/UsrImg/Profiles/PhotoName.jpg');
});
Недавно загруженный файл имеет то же имя как старое, все, что необходимо, способ обновить изображение. Так как это - то же имя, кэш мешает - метод, описанный в этой статье, не работал.
Какие-либо идеи?
Статья, на которую вы ссылаетесь, здесь не работает, но вы можете сломать кеш с помощью строки запроса на изображении, например:
$("#profilePicForm").ajaxForm(function() {
alert("Photo updated");
$("#newPhotoForm").slideToggle();
$("#profilePic img").load(function() {
$(this).hide();
$(this).fadeIn('slow');
}).attr('src', '/Content/UsrImg/Profiles/PhotoName.jpg?' + new Date().getTime());
});
Это заставляет браузер снова проверять изображение , поскольку метка времени добавляется к строке запроса, она каждый раз разная. Это означает, что браузер просто больше не может доверять кешу, поскольку это немного другой запрос сервера ... так что это приведет к повторной выборке, как вы хотите.