new Image().src="same url" 编码两次但浏览器只能捕获一个请求

sin*_*bar 3 javascript google-chrome httprequest

看下面的代码。Chrome 在调试控制台中记录了一个请求。如果这是因为缓存,为什么它不记录两个请求,最后一个是 304?

什么解释了这种浏览器行为?

<script>
     new Image().src="//stackoverflow.com/"
     new Image().src="//stackoverflow.com/"
</script>
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 5

浏览器已经下载了图片,为什么还要再请求同一张图片呢?如果一个图像在一个页面上被多次使用(这种情况经常发生),为它使用的每个实例发出单独的请求会产生大量不必要的开销。同一页面中具有相同 URL 的两个图像被假定为相同的图像。

  • 这种效果在 GIF 动画中尤为明显,即使间隔加载,具有相同文件名的图像也会保持同步。不久前我做了一个演示来回答其他一些问题:http://adamhaskell.net/misc/numbers/numbers.html (2认同)