我一直在使用PerformanceObserver来测量网络请求的时间。虽然它看起来还不错,但我还是发现了一些问题:
Location: "same-origin-different-url"
返回),则资源计时仅包括从发出请求到服务器发送响应码302的时间。因此,跳过重定向的URL,并且在performance.getEntriesByType('resource')
返回的所有资源条目中都找不到它。此外,另一个注意事项是,redirectStart
和redirectEnd
属性不包括重定向的URL时间,因为它被重定向到相同的源more info。那么,有没有办法计算重定向的网址计时呢?domainLookupEnd
上总是返回0。因此,计时与Chrome网络计时工具不匹配。对此有什么想法吗?如果有人遇到这些问题并找到了解决方法,我将非常感谢。
发布于 2019-05-23 05:43:18
仔细阅读documentation之后,我发现响应报头必须包含Timing-Allow-Origin
报头。否则,这些属性将返回0。使用Charles proxy添加此标头后,我没有看到任何问题。
跨域资源必须作为PerformanceResourceTiming对象包含在性能时间线中。如果timing allow检查算法对资源执行失败,则必须将其PerformanceResourceTiming对象的以下属性设置为零:redirectStart、redirectEnd、domainLookupStart、domainLookupEnd、connectStart、connectEnd、requestStart、responseStart、secureConnectionStart、transferSize、encodedBodySize和decodedBodySize。
Timing-Allow-origin header字段可用于传送指示允许看到由于跨来源限制而为0的属性的值的来源的策略。标头的值由下面的ABNF RFC5234表示
https://stackoverflow.com/questions/56153376
复制相似问题