我有一个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
附加到图片网址的末尾一样简单?
答案 0 :(得分:5)
它是相同的,因为它使用相同的名称进行缓存,诀窍是使用不同的名称。
由于您不能使用其他名称,我们会向其添加内容:
var dt = new Date();
$("#profile").attr( 'src', myjson.url + '?dt=' + dt.getTime() );
只需一次通话(如Sushil所述):
$("#profile").attr( 'src', myjson.url + '?dt=' + (+new Date()) );
这将输出为: