更改img src不会更新图片

时间:2015-10-23 12:27:31

标签: javascript html

更新

终于明白为什么它不起作用。将timestamp属性添加到avatar.src时,服务器会出错。我有一个默认的非头像图片,但由于某些原因,当你设置不正确的src时,它只是没有更新。

我有下一张图片:

<img id="avatar" src="http://<my_host>/download?userId=1"/>

在服务器上更新后,我尝试在客户端上更新它失败了:

const avatar = document.getElementById("avatar");
// PROBLEM: not update an image
avatar.src = avatar.src + '&timestamp=' + new Date().getTime(); 

BUT:

const avatar = document.getElementById("avatar");
debugger; // NOW REFRESH WORKS!!
avatar.src = avatar.src + '&timestamp=' + new Date().getTime(); 

问题: 如何更新图片?

1 个答案:

答案 0 :(得分:2)

请注意const在旧版浏览器中不起作用。

我猜想你使用const无法存储图像对象。 相反,我建议:

void callback(void* object, ...) {
    ((MyObject*)object)->method(...);
}

将图像对象存储在const中是没有意义的。相反,您可以将URL存储在const:

var avatar = document.getElementById("avatar");
var src = avatar.src;
avatar.src = src + '&timestamp=' + new Date().getTime(); 

更新:由于const IMGURL = "http://<my_host>/download?userId=1"; var avatar = document.getElementById("avatar"); avatar.src = IMGURL + '&timestamp=' + new Date().getTime(); 在OP的代码中做同样的事情,我现在会看一下时间问题。如果setInterval或其他任何使用的太快,添加调试器可能会减慢它以允许加载。按F12并查看网络选项卡是否显示大量中断呼叫