PerformanceResourceTiming: responseStatus 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

注意:此功能在 Web Workers 中可用。

responseStatus 只读属性表示在获取资源时返回的 HTTP 响应状态码。

此属性映射到 Fetch API 中的 Response.status

responseStatus 属性可以具有以下值:

示例

检查缓存命中情况

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

浏览器兼容性

另见