当前位置: 首页 > 知识库问答 >
问题:

javascript - 前端监控针对静态资源加载时间采集,PerformanceResourceTiming有办法知道资源是否是通过协商缓存加载的吗?

顾永福
2023-10-11

除了deliveryType外,有兼容性更好的方案了解是否是通过缓存加载的吗

共有2个答案

章禄
2023-10-11

用 responseStatus 属性:

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 });

或者用 transferSize 属性可以用来检查本地缓存有没有命中,如果 transferSize 的值为 0,就表示资源是从缓存加载的,不是从网络加载的

沈高峻
2023-10-11

PerformanceResourceTiming API 可以提供关于网页上每个资源加载时间的信息,包括是否从缓存中加载资源。但是,它并不能直接告诉你资源是否通过协商缓存(Negotiated Cache)加载的。

协商缓存是通过服务器和客户端之间协商决定是否使用缓存的一种机制。在 HTTP/1.1 协议中,服务器和客户端会首先通过 "Pragma" 和 "Cache-Control" 头字段进行协商。

要了解一个资源是否通过协商缓存加载的,需要分析 HTTP 头字段。PerformanceResourceTiminginitiatorType 可以告诉你请求是怎样开始的,可以用来推测资源是否从缓存中加载。例如,如果 initiatorType"from_cache",那么资源很可能是从缓存中加载的。但是这并不是绝对的,因为 "from_cache" 也可以表示资源是由浏览器缓存而不是协商缓存加载的。

在实践中,要想准确了解资源是否通过协商缓存加载的,最好的方式可能还是通过服务器日志或者使用网络监视工具(如 Chrome 的开发者工具)来查看具体的 HTTP 头字段。

另外,要注意的是,不是所有的浏览器都支持 PerformanceResourceTiming API,你可能需要检查你的目标浏览器是否支持这个 API。在某些情况下,你可能需要使用 polyfill 或者其他替代方案。

 类似资料:
  • 4.1 原生koa2实现静态资源服务器 4.2 koa-static中间件

  • 我试图使用相对路径在jsp文件中加载静态资源,如css文件和javascript文件,但servlet映射似乎覆盖了对它们的映射。 项目结构: web.xml: mvc调度程序servlet。xml: 我尝试加载样式表的JSP文件: 我得到的错误是: 警告组织。springframework。网状物servlet。PageNotFound:1108-在名为“mvc dispatcher”的Disp

  • 问题内容: 我得到了一个Spring MVC应用程序,该应用程序当前在目录中放置了一堆CSS和JS文件。 我通读了Spring Docs和一些有关如何使用ResourceHandlerRegistry类为模板加载这些文件的教程。我特别认为本教程中的代码段完全适合我的项目结构。 但是我的资源文件上总是显示404。 这是我当前正在使用的Application / Configuration类: 这是我

  • 当我调用我的api时,在ios9中遇到了这个错误,但它在ios8中运行良好,资源无法加载,因为应用程序传输安全策略要求使用安全连接

  • 我的问题很简单。我无法在Spring中加载静态资源,下面是我的配置文件。 dispatcher servlet。xml 网状物xml 我已将js和css文件放入/webapp/resources/css和/webapp/resources/js中。 我知道这个问题已经被解决了很多次,但我无法加载静态资源。我得到405浏览器上没有方法错误。 在网上尝试了所有其他解决方案。请告诉我哪里出了问题。对这些

  • 使用Network(网络)面板评估网站的网络性能。 Network(网络)面板记录在页面上有关每个网络操作的信息,包括详细的时序数据,HTTP请求和响应头,Cookie等。 TL;DR 使用Network(网络)面板记录和分析网络活动。 以聚合(所有类型)或单个资源类型查看负载信息。 过滤和排序资源的显示方式。 保存,复制和清除网络记录。 根据您的需要自定义Network(网络)面板。 Netwo