使用resource timing观测资源的访问情况,responseEnd=0代表什么?

发布于 2022-09-05 00:42:19 字数 168 浏览 15 评论 0

PS: 下面这个timing即不查询缓存也不请求网络资源为什么会出现这种情况
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一抹微笑 2022-09-12 00:42:19

谢邀,duration为0应该是命中了缓存,并且是通过max-age控制的长缓存,所以连服务器返回304的时间都省去了,Network 中的信息证明了这一点:
判断是否命中缓存

当禁用缓存后,刷新页面可以看到经过网络过程所耗的时间:
禁用缓存
观察duration

但是另一个问题来了,为什么这么多的时间信息显示为0?这时候就要翻出规范来查阅一下,比如说responseStart规范中的定义

On getting, the responseStart attribute must return as follows:

  1. The time immediately after the user agent receives the first byte of the response from relevant application caches, or from local resources or from the server if the last non-redirected fetch of the resource passes the timing allow check algorithm.

  2. zero, otherwise.

简单地说,responseStart记录了浏览器发起资源请求的时间,但要通过 timing allow check的检查,否则返回0。跳到定义看一眼,其实就是检查是否符合同源策略,如果出现跨域情况,需要通过在资源返回时增加Timing-Allow-Origin header来解决。

在我们团队的博客上,可以看到引入同源资源时,各项统计的完整性。

最后讨论responseEnd为0的情况,规范上要求,非同源资源改信息返回0,但我们也看到了,Chrome给出了与startTime相同的值,我想这应该算是规范与具体实现不同的一个例子吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文