Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NavigationTimingAPI能否用于异步调用?_Javascript_Navigation Timing Api_Resource Timing Api - Fatal编程技术网

Javascript NavigationTimingAPI能否用于异步调用?

Javascript NavigationTimingAPI能否用于异步调用?,javascript,navigation-timing-api,resource-timing-api,Javascript,Navigation Timing Api,Resource Timing Api,我目前正在使用自定义元素v1的项目中实现性能度量功能 在不同的导航类型(导航、重新加载、浏览器后退/前进)上提供了非常详细的测量: 同样的(或类似的详细信息)也可以用于异步调用吗?或者有没有其他我不知道的API 也就是说,当页面已完全加载且某些用户交互或事件触发位于服务器的资源上的POST或GET时 到目前为止,我发现的唯一一件事是使用设置度量点 我错过了一些重要的东西吗?我错过了这里显而易见的东西 带有所有适用详细信息的每个XMLHTTPRequest都会自动作为中的PerformanceR

我目前正在使用自定义元素v1的项目中实现性能度量功能

在不同的导航类型(导航、重新加载、浏览器后退/前进)上提供了非常详细的测量:

同样的(或类似的详细信息)也可以用于异步调用吗?或者有没有其他我不知道的API

也就是说,当页面已完全加载且某些用户交互或事件触发位于服务器的资源上的POST或GET时

到目前为止,我发现的唯一一件事是使用设置度量点


我错过了一些重要的东西吗?

我错过了这里显而易见的东西

带有所有适用详细信息的每个
XMLHTTPRequest
都会自动作为中的
PerformanceResourceTiming
对象提供

performance
  .getElementsByType("resource")
  .filter(function(x) { 
    return x.initiatorType === "xmlhttprequest";
  });
我只查看了
performance.timing
对象(实际上只有
performance.getElementsByType()
)不可用)。

您命名了导航计时,找到了带有
performance.mark()
的用户计时,但没有找到。这三个都是性能计时API的一部分

导航定时测量主页或应用程序。资源计时API类似,但它为每个异步加载的资源提供,以使它们与导航时间相关

想想看:异步加载的文件没有要运行的DOM!这意味着在资源计时中缺少dom属性。但开始部分与导航计时相同:

性能计时API最重要的属性startTime如何?每一个非同步呼叫都有自己的!文档的起始时间是
0
,Javascript文件和资源的起始时间是
>0
ms

startTime是第一个记录的时间戳-度量的来源。它标记浏览器首次开始加载资源过程的时间。在资源计时中对资源计时

作为CSS或图像的资源既没有dom也没有执行,但是扩展名为
.js
的资源执行Javascript,因此用户可以使用
performance.mark()
进行计时,正如您已经发现的那样

  • NavigationTimingAPI可以用于异步调用吗?
是和否。资源计时会自动获得标记,该标记可以与导航计时相对,从而进行非常有用的比较。因此,是-但不是:度量index.html(导航)和度量异步调用(资源)是不同的:
performance.getEntriesByType(“导航”)
更改为
performance.getEntriesByType(“资源”)