终于明白为什么它不起作用。将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 + '×tamp=' + new Date().getTime();
BUT:
const avatar = document.getElementById("avatar");
debugger; // NOW REFRESH WORKS!!
avatar.src = avatar.src + '×tamp=' + new Date().getTime();
问题: 如何更新图片?
答案 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 + '×tamp=' + new Date().getTime();
更新:由于const IMGURL = "http://<my_host>/download?userId=1";
var avatar = document.getElementById("avatar");
avatar.src = IMGURL + '×tamp=' + new Date().getTime();
在OP的代码中做同样的事情,我现在会看一下时间问题。如果setInterval或其他任何使用的太快,添加调试器可能会减慢它以允许加载。按F12并查看网络选项卡是否显示大量中断呼叫