如何在.attr('src',url)更改后强制浏览器刷新一个图像?

时间:2012-09-12 10:21:59

标签: javascript jquery ajax

我有一个ajax上传脚本,它返回一个应该在dom中换出现有加载图像的图像。

例如

<img src="http://site.com/user1-profile-pic.jpg" id="profile" />

并上传新图片会返回json

{"url": "http://site.com/user1-profile-pic.jpg" }

然后我运行jQuery

$("#profile").attr('src', myjson.url);

但是图片网址始终相同,所以我想破坏该图片的缓存以再次加载它。是否可以像将?timestamp附加到图片网址的末尾一样简单?

1 个答案:

答案 0 :(得分:5)

它是相同的,因为它使用相同的名称进行缓存,诀窍是使用不同的名称。

由于您不能使用其他名称,我们会向其添加内容:

var dt = new Date(); 
$("#profile").attr( 'src', myjson.url + '?dt=' + dt.getTime() );

只需一次通话(如Sushil所述):

$("#profile").attr( 'src', myjson.url + '?dt=' + (+new Date()) );

这将输出为:

enter image description here