我正在使用w3c资源计时API.window.performance.getEntriesByType( "资源"); 这给出了包括iframe在内的资源列表.但是,为了掌握嵌入式iframe的资源,我需要掌握iframe的性能对象,这需要我对其'DOM节点/元素进行引用.
var myiframe2 = $("#myiframe2");
var myiframeContentWindow = myiframe2[0].contentWindow;
var iframeContentPerf = myiframeContentWindow.performance;
Run Code Online (Sandbox Code Playgroud)
问题是,如果我所知道的是iframe的URL,那么如何获取iframe的节点引用,这是我所知道的(我不知道iframe的id或名称与上面的代码示例不同).
除了遍历文档的元素然后过滤iframe并将iframe的URL与Resource Timing API返回的内容进行比较之外,是否有一种简单的方法来获取iframe的DOM节点(给定iframe的URL)?
使用资源计时 API,window.performance.getEntries()返回带有计时信息的性能条目列表。此类信息显示在浏览器网络调试器中。请参阅此处: https: //developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API
在对象/资源计时 API 上使用window.performance.getEntries()或其他一些方法performance,有没有办法获取 HTTP 方法(Get、Post、Put、Delete、Patch)?我没有找到在PerformanceResourceTiming接口上获取 HTTP 方法的方法,例如: https: //developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming
我正在逐个选项卡地记录来自 Service Worker 的所有 http 请求的性能数据(“fetch”事件的“clientId”属性)。Resource Timing API 提供了我需要的所有高分辨率计时数据。但我无法获取特定请求的这些数据。如果有 5 个选项卡,并且所有选项卡都请求http://api.example.com/resource,那么从服务工作线程的范围来看,性能条目已存储所有 5 个请求,没有任何区分属性,并且我无法映射特定的属性对性能条目的请求。
performance.now()是的,我知道我可以在获取请求之前和之后标记时间。但我需要其他数据,如 TTFB、DNS 计时等,我只能根据资源计时 API 提供的数据来测量它们。
如何获取特定请求的高分辨率计时数据?
performance.getEntriesByType("resource")返回所有已加载资源的数据。我只需要这些数据来处理特定的异步请求。
使用PerformanceResourceTiming,duration返回的值还包括资源调度时间。
这是一个例子:
这些值与网络面板匹配。但这个值对应的是总时间。这个总时间也加上了资源调度时间。
有没有办法从API获取不包括资源调度时间的持续时间?通常 API 会将此时间添加到请求的总持续时间中。
正如您在上面的照片中看到的:244.13ms 是 240ms(~资源飞行时间)+ 4ms(~资源调度时间)的总和。
如上所述,记录的值是停滞时间和网络表条目中记录的时间之和。这意味着这不仅仅是飞行时间;我正在寻找那个。
javascript performance google-chrome google-chrome-devtools resource-timing-api
我正在阅读有关资源计时API的这篇文章,我无法理解以下限制背后的原因:
从第三方获取的资源必须提供额外的HTTP标头(Timing-Allow-Origin:*),以允许站点收集详细的网络定时数据.如果标头不存在,则唯一可用的数据是请求的总持续时间.
虽然我可以很容易地理解阻止请求没有Access-Control-Allow-Origin标题的原因,但我很难理解为什么我不应该获得有关没有Timing-Allow-Origin标题的计时的信息.
我编写了一个在域上运行并从各个其他域(第三方资源)获取图像的脚本。
我正在尝试使用它window.performance.getEntriesByType('resource')来对事物进行一般健康检查。看来,由于这些资源位于其他域,因此响应需要Timing-Allow-Origin在响应标头中设置才能通过window.performance.getEntriesByType().
这是真的?
此外,当我运行脚本时,Chrome 浏览器确实会返回有用的信息。事实上,如果我能以编程方式获取这些数据,我就可以使用它。但Chrome显示的数据和返回的数据有所不同window.performance.getEntriesByType()。
我附上了一张屏幕截图,其中显示了 Chrome 加载资源的有用时间细分。由性能条目对象的数据不匹配。
例如,查看右侧时序图中的 DNS Lookup 时间,然后查看性能条目对象中的domainLookupStart 和domainLookupEnd 值。这些值彼此不匹配。
为什么会出现差异?如何获取 Chrome 的数据?如何从性能条目对象中获取 Chrome 显示的内容?
谢谢!
javascript network-programming google-chrome resource-timing-api