我相信这是因为与您的图像一起发送的标头没有说明它的缓存。我的意思是您的图片网址:
http://motocross.es/ajax/shop.ajax.original_pic.php?file=ref_44_1szyh6a9s5mh3ixc.jpg
...使用这些标题提供图像:
HTTP/1.1 200 OK
Date: Sat, 16 Mar 2013 10:00:13 GMT
Server: Apache/2.2.21 (FreeBSD) mod_ssl/2.2.21 OpenSSL/0.9.8q DAV/2 mod_fastcgi/2.4.6
Content-Length: 79741
Keep-Alive: timeout=3, max=1000
Connection: Keep-Alive
Content-Type:
这没有说明应该如何缓存图像。例如,将其与主页上的基本较小图像进行比较:
http://motocross.es/upload/shop/vendores/44/productos/standard/cropped_ref_44_1szyh6a9s5mh3ixc.jpg
...标题如下所示:
HTTP/1.1 200 OK
Date: Sat, 16 Mar 2013 10:00:42 GMT
Server: Apache/2.2.21 (FreeBSD) mod_ssl/2.2.21 OpenSSL/0.9.8q DAV/2 mod_fastcgi/2.4.6
Last-Modified: Fri, 08 Mar 2013 03:04:33 GMT
ETag: "2726d07-d1c9-4d761151f1240"
Accept-Ranges: bytes
Content-Length: 53705
Cache-Control: max-age=1296000, public, must-revalidate
Keep-Alive: timeout=3, max=1000
Connection: Keep-Alive
Content-Type: image/jpeg
看到额外的缓存说明了吗?那里有一个Cache-Control
标头,这可能是重要的部分,以及其他缓存信息,如 ETag。还有一个Content-Type
,可能是相关的,因为在没有其他线索的情况下,浏览器的缓存策略可能与内容类型有关。
当 URL:
http://motocross.es/ajax/shop.ajax.original_pic.php?file=ref_44_1szyh6a9s5mh3ixc.jpg
……被击中?即服务器端也是你的代码吗?如果是这样,请尝试添加适当的Cache-Control
标题和Content-Type
. 如果您控制服务器,则很大程度上取决于您的图像如何被浏览器缓存。