NavigationTimingAPI 可以用于异步调用吗?
Can the NavigationTimingAPI be used on asynchronous calls?
我目前正在我们的项目中实现性能测量功能,该项目使用自定义元素 v1。
NavigationTimingAPI 提供了对不同导航类型(导航、重新加载、浏览器 back/forward)的非常详细的测量:
是否也可以为 异步 调用提供相同的(或类似的详细信息)?或者是否还有另一个我不知道的 API?
也就是说,当页面完全加载并且某些用户交互或事件触发 POST 或服务器资源上的 GET 时。
到目前为止我唯一发现的是使用 performance.mark()
.
设置测量点
我是不是漏掉了一些重要的东西?
我错过了这里显而易见的地方。
具有所有适用详细信息的每个 XMLHTTPRequest
自动作为 PerformanceResourceTiming
对象在
中可用
performance
.getElementsByType("resource")
.filter(function(x) {
return x.initiatorType === "xmlhttprequest";
});
我只是在查看 performance.timing
对象(实际上是唯一无法通过 performance.getElementsByType()
获得的对象)。
您将 Navigation Timing 命名为 User Timing performance.mark()
,但未找到 Resource Timing API。这三个都是 Performance Timing API 的一部分。
Navigation Timing 测量主页或应用程序。 资源计时API类似,但它是为每个单独的异步加载资源提供的,以使它们与导航时间相关。
想想看:异步加载的文件没有DOM到运行!这意味着资源计时中缺少 dom-properties。但开始部分与导航时序相同:
Performance Timing API中最重要的属性startTime怎么样?每个异步调用都有自己的! startTime 对于文档是 0
,对于 Javascript 文件和资源是 >0
毫秒。
startTime 是第一个记录的时间戳 - 度量的起源。它标志着浏览器首次开始加载资源的时间。在资源计时中 startTime is same as fetchStart or redirectStart (if not zero) 计时资源时。
作为 CSS 或图像的资源既没有 dom 也没有执行,但是具有 .js
扩展名的资源执行 Javascript,因此可以使用 performance.mark()
正如您已经发现的那样。
- Can the NavigationTimingAPI be used on asynchronous calls?
是和否。Resource Timing 会自动获得标记,这些标记可以与 Navigation Timing 相关,从而进行非常有用的比较。所以是的 - 但不是:测量 index.html(导航)和测量异步调用(资源)是不一样的:
将 performance.getEntriesByType("navigation")
更改为 performance.getEntriesByType("resource")
。
我目前正在我们的项目中实现性能测量功能,该项目使用自定义元素 v1。
NavigationTimingAPI 提供了对不同导航类型(导航、重新加载、浏览器 back/forward)的非常详细的测量:
是否也可以为 异步 调用提供相同的(或类似的详细信息)?或者是否还有另一个我不知道的 API?
也就是说,当页面完全加载并且某些用户交互或事件触发 POST 或服务器资源上的 GET 时。
到目前为止我唯一发现的是使用 performance.mark()
.
我是不是漏掉了一些重要的东西?
我错过了这里显而易见的地方。
具有所有适用详细信息的每个 XMLHTTPRequest
自动作为 PerformanceResourceTiming
对象在
performance
.getElementsByType("resource")
.filter(function(x) {
return x.initiatorType === "xmlhttprequest";
});
我只是在查看 performance.timing
对象(实际上是唯一无法通过 performance.getElementsByType()
获得的对象)。
您将 Navigation Timing 命名为 User Timing performance.mark()
,但未找到 Resource Timing API。这三个都是 Performance Timing API 的一部分。
Navigation Timing 测量主页或应用程序。 资源计时API类似,但它是为每个单独的异步加载资源提供的,以使它们与导航时间相关。
想想看:异步加载的文件没有DOM到运行!这意味着资源计时中缺少 dom-properties。但开始部分与导航时序相同:
Performance Timing API中最重要的属性startTime怎么样?每个异步调用都有自己的! startTime 对于文档是 0
,对于 Javascript 文件和资源是 >0
毫秒。
startTime 是第一个记录的时间戳 - 度量的起源。它标志着浏览器首次开始加载资源的时间。在资源计时中 startTime is same as fetchStart or redirectStart (if not zero) 计时资源时。
作为 CSS 或图像的资源既没有 dom 也没有执行,但是具有 .js
扩展名的资源执行 Javascript,因此可以使用 performance.mark()
正如您已经发现的那样。
- Can the NavigationTimingAPI be used on asynchronous calls?
是和否。Resource Timing 会自动获得标记,这些标记可以与 Navigation Timing 相关,从而进行非常有用的比较。所以是的 - 但不是:测量 index.html(导航)和测量异步调用(资源)是不一样的:
将 performance.getEntriesByType("navigation")
更改为 performance.getEntriesByType("resource")
。