我有一个应用程序,在多个位置显示相同的图像,可能会更改图像的src.
当我指向我之前已经使用的PNG图像时,浏览器不会打扰发出新请求,它只是使用已经在缓存中的PNG图像.但是,当我指向我之前使用的SVG图像图像时,浏览器(Chrome 22)会发出新请求.服务器返回304(未修改),因此不需要下载新图像,但这仍然需要一些额外的处理.
这可以在这个jsFiddle中轻松测试:http://jsfiddle.net/jtmuw/1/
$('button').click( function() {
$('#a').attr('src', "myImage.svg");
$('#b').attr('src', "myImage.png");
});
Run Code Online (Sandbox Code Playgroud)
如果您打开Chrome(或至少Chrome v.22.0.1229.94)的小提琴并打开网络选项卡,您将看到已请求两个图像.如果您再次点击"重新加载图像",您的网络选项卡将显示多个SVG图像请求,但不再请求PNG图像.
据我所知,服务器返回相同的标题,所以我看不出任何差异的原因.
我在FF或Safari上没有看到这个,所以这可能是Chrome问题.但是,我仍然觉得可能在我缺少的标题中存在一些潜在的差异,并且Chrome不仅仅是奇怪地处理SVG图像.
小智 1
您也许可以强制 Chrome 缓存该文件。w3schools对此有一个很好的概述,如下:http://www.w3schools.com/html/html5_app_cache.asp
本质上,您需要创建一个清单文件(将其称为...“myCache.appcache”或其他名称)
CACHE MANIFEST
/path/to/svg/file.svg
Run Code Online (Sandbox Code Playgroud)
然后在你的 html 文件中指向它,如下所示:
<html manifest="myCache.appcache">
Run Code Online (Sandbox Code Playgroud)
这将告诉 Chrome,即使您无法访问互联网,该文件也应该被缓存并可访问。
| 归档时间: |
|
| 查看次数: |
1903 次 |
| 最近记录: |