4

出于某种原因,如果图像保存在缓存中(仅限 Chrome),jQuery .load 不会触发。

这是jsfiddle

我该如何解决?

4

3 回答 3

6

这是因为,如果当前src新 src相同,则不会加载新图像,因为两者相同。这样做的技巧是使当前的src值变为空白。

$("#btn").click(function(){
    $("#tst").attr('src','');
    $("#tst").attr('src','https://www.google.co.il/images/srpr/logo3w.png');
});

​<a href="http://jsfiddle.net/Vaishak/uYmWQ/2/">jsFiddle 演示链接

于 2012-06-27T15:32:31.643 回答
1

例如,您可以使用时间戳:

    var timestamp = new Date().getTime();
    $("#image_test")
      .attr("src", "http://www.sandiegovips.com/wp-content/uploads/2014/05/test-image.jpeg?timestamp="+timestamp)
      .load(function() {
             alert("image loaded!");
       }); 
<img id='image_test' src=""/>

于 2015-04-20T10:59:44.427 回答
0

您可以通过在图像的 url 中包含时间戳来绕过缓存。这将导致每次请求时刷新缓存的图像。

于 2012-06-27T14:46:37.227 回答