我正在尝试优化我的web应用程序的速度,并且我正在控制图像的加载。
我有一个名为webCache的属性,我用它来处理。…
if (!webCache) src += "?rand="+Math.random();
img.src =src;
如果webCache是假的,那么我更新src var值添加一个随机值通过使用random()然后,我将新的src值添加到对象图像的src属性。
我的问题是,如果webCache
为真,则不执行条件if,并且同样执行img.src =src;
。值是相同的,src值没有改变,但图像可以是另一个....浏览器在这里将如何表现?它会刷新图像吗?
也就是说,如果src值是相同的,但图像是另一个,浏览器将如何表现?
这将取决于图像第一次被服务时的http头。
服务器可能已经告诉浏览器总是重新获取图像,在一段时间内不重新获取图像,或者直到特定的时间点。
还可以提供ETag或Last-Modified标头,允许浏览器向服务器发出HEAD请求并检查是否应该下载图像或仅使用其本地副本。
一些相关的报头是
- cache - control
- last - modified
- ETag
在google chrome中,您可以禁用缓存用于开发目的。按F12,点击右下角的转轮,选择"常规",然后勾选"禁用缓存"