javascript - new Image().src="same url" coding twice but the browser just can catch one request - Stack Overfl

Look at the following code. Chrome logs one request in debug console. If this is because of caching, wh

Look at the following code. Chrome logs one request in debug console. If this is because of caching, why does it not log two requests with the last one being 304?

What explains this browser behavior?

<script>
     new Image().src="//stackoverflow/"
     new Image().src="//stackoverflow/"
</script>

Look at the following code. Chrome logs one request in debug console. If this is because of caching, why does it not log two requests with the last one being 304?

What explains this browser behavior?

<script>
     new Image().src="//stackoverflow./"
     new Image().src="//stackoverflow./"
</script>
Share Improve this question edited Feb 4, 2018 at 19:45 Salman Arshad 273k84 gold badges444 silver badges534 bronze badges asked Aug 16, 2017 at 9:48 sinbarsinbar 1,0732 gold badges9 silver badges26 bronze badges 2
  • 1 This is not a 304 answer. Chrome displays 304 requests. i think that chrome caches the first request and the second is a cache hit. – wartoshika Commented Aug 16, 2017 at 9:51
  • If you want to encourage multiple requests, add different GET parameters to the URL – Paul S. Commented Aug 16, 2017 at 10:32
Add a ment  | 

2 Answers 2

Reset to default 6

The browser has already downloaded the image, why would it make another request for the same image? If an image is used more than once on a page (which happens regularly), making an individual request for each instance it's used would produce a ton of unnecessary overhead. Two images with the same URL within the same page are assumed to be the same image.

You are requesting the same image twice. The behavior is actually described in HTML5 specifications. Quote:

If the resource is identified by an absolute URL, and the resource is to be obtained using an idempotent action (such as an HTTP GET or equivalent), and it is already being downloaded for other reasons (e.g. another invocation of this algorithm), and this request would be identical to the previous one (e.g. same Accept and Origin headers), and the user agent is configured such that it is to reuse the data from the existing download instead of initiating a new one, then use the results of the existing download instead of starting a new one.

HTML5 > Common infrastructure > Fetching resources > Processing model

Basically it says that if you request the exact same resource multiple times, the browser downloads it only once (or not download it at all and serve from cache instead).

Relevant specs in reverse order:

  • HTML5 > Common infrastructure > Fetching resources > CORS-enabled fetch
  • HTML5 > Embedded content > The img element > update the image data

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745264913a4619396.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信