PerformanceResourceTiming: responseStatus 属性
注意:此功能在 Web Workers 中可用。
responseStatus 只读属性表示在获取资源时返回的 HTTP 响应状态码。
此属性映射到 Fetch API 中的 Response.status。
值
responseStatus 属性可以具有以下值:
- 一个数字,表示在获取资源时返回的 HTTP 响应状态码。
- 如果 CORS 检查失败,则为
0。 - 对于跨域
<iframe>对象,值为0。
示例
检查缓存命中情况
responseStatus 属性可用于检查具有 304 Not Modified 响应状态码的缓存资源。
使用 PerformanceObserver 的示例,它会在浏览器性能时间线中记录新的 resource 性能条目时通知。使用 buffered 选项可以访问观察者创建之前的条目。
js
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
if (entry.responseStatus === 304) {
console.log(`${entry.name} was loaded from cache`);
}
});
});
observer.observe({ type: "resource", buffered: true });
使用 Performance.getEntriesByType() 的示例,它只显示在调用此方法时浏览器性能时间线中存在的 resource 性能条目
js
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
if (entry.responseStatus === 304) {
console.log(`${entry.name} was loaded from cache`);
}
});
或者,如果 responseStatus 不可用,您可以检查 transferSize 属性是否返回 0。
跨域响应状态码
如果 responseStatus 属性的值为 0,则资源可能是跨域请求。要允许查看跨域响应状态码,需要设置 CORS Access-Control-Allow-Origin HTTP 响应头。
例如,为了允许 https://mdn.org.cn 查看响应状态码,跨域资源应发送:
http
Access-Control-Allow-Origin: https://mdn.org.cn
规范
| 规范 |
|---|
| 资源时序 # dom-performanceresourcetiming-responsestatus |
浏览器兼容性
加载中…