Существует ли способ обновить изображение после ajax загрузки файла в jQuery?

У меня есть изображение на странице. Я использую плагин формы 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');
}); 

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

Какие-либо идеи?

5
задан Chaddeus 12 July 2010 в 11:41
поделиться

1 ответ

Статья, на которую вы ссылаетесь, здесь не работает, но вы можете сломать кеш с помощью строки запроса на изображении, например:

$("#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());
}); 

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

13
ответ дан 18 December 2019 в 14:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: