html点击重新载入图片,如何在jQuery中重新加载/刷新元素(图像)

如何在jQuery中重新加载/刷新元素(图像)

是否可以使用jQuery从服务器重新加载具有相同文件名的图像?

例如,我在页面上有一个图像,但是,物理图像可以根据用户操作而改变。 注意,这并不意味着文件名更改,而是实际文件本身。

即:

用户在默认页面上查看图像

用户上传新图像

页面上的默认图像不会更改(我假设这是由于文件名相同,浏览器使用缓存版本)

无论下面的代码被调用的频率如何,同样的问题仍然存在。

$("#myimg").attr("src", "/myimg.jpg");

在jQuery文档中,如果它具有触发事件的默认方法而不是将回调函数绑定到元素的成功/完全加载,那么“load”函数将是完美的。

非常感谢任何帮助。

Alexis Abril asked 2019-02-18T14:40:03Z

12个解决方案

502 votes

这听起来像是你的浏览器缓存图像(我现在注意到你在你的问题中写道)。 您可以通过传递一个额外的变量来强制浏览器重新加载图像:

d = new Date();

$("#myimg").attr("src", "/myimg.jpg?"+d.getTime());

jay answered 2019-02-18T14:40:20Z

51 votes

这可能不是最好的方法,但我过去通过使用JavaScript向图像URL附加时间戳来解决这个问题:

$("#myimg").attr("src", "/myimg.jpg?timestamp=" + new Date().getTime());

下次加载时,时间戳设置为当前时间且URL不同,因此浏览器对图像执行GET而不是使用缓存版本。

Kaleb Brasee answered 2019-02-18T14:40:58Z

24 votes

这可能是你自己提到的两个问题之一。

服务器正在缓存图像

jQuery不会触发或至少不更新属性

说实话,我认为这是第二名。 如果我们能看到更多jQu

你可能感兴趣的:(html点击重新载入图片)