问题标签 [resource-timing-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
selenium - 资源计时 API 未在 Selenium 中显示正确的资源
我安装了最新版本的 geckodriver,并且正在运行最新的 Firefox 版本。我编写了一个 selenium 脚本来在 Firefox 中打开一个 URL 并保持浏览器打开(我没有调用 driver.close() 或 driver.quit())
这是脚本的样子
Resource Timing API 为该网站报告的资源数量 > 100。
现在,网站只是再次重新加载,以便从缓存中获取资源。 注意:我只需在地址栏中按 enter 即可刷新
Resource Timing API 报告的资源数量 < 40。与 Networks 选项卡的 Developer Tools 中资源数量的差异也是如此。每个网站都在发生这种情况。
如果我只是运行普通的 Firefox 并以相同的方式刷新页面,则不会发生这种情况。无论我刷新网页的次数如何,资源编号始终匹配。
google-chrome-extension - 我们是否有等效的资源计时 API 可以从浏览器扩展中使用
我想收听来自页面的所有请求(包括来自它可能拥有的 iframe),并为所有请求获取类似于资源计时 api 的指标。我希望能够从后台脚本执行此操作。
我尝试直接注入一个脚本标签,该标签将监听 dom 更改事件,然后使用该数据。但请参阅那里的 2 个问题 1. 它没有获取 iframe 的所有 dom 更改事件。2. 我无法找到从 iframe 发出的额外调用。
我的内容脚本有这样的东西
我注入 dom 的脚本看起来像这样
但是我上面的代码没有检测到 dom 更改,我也无法从 iframe 中获取调用。不过,我确实在 chrome 开发人员工具中看到了这些请求。这里我的 iframe 来自同一个域。
所以我想改为切换到后台脚本,然后收听页面上发生的所有调用并获取资源的时间。
javascript - 性能时间线跟踪中的“CommitLoad”事件是什么?
我正在尝试找出什么是CommitLoad事件。我在记录所有跟踪事件并搜索与主要 html 网络请求时间相关的事件时发现了它:
我运行 200 测试以确定CommitLoad的发生时间,它发生在ResourceFinish之前:
但我在 Chrome 性能面板中找不到CommitLoad :
这个黄色事件在完成加载(ResourceFinish)之前大约 79 毫秒,它被称为Event: readystatechange。也许这是一个线索。
这是我的完整trace.json。
javascript - performance.now() 是否从 navigationStart 开始?
performance.now() 的起始时间是什么时候?是navigationStart、requestStart 还是别的什么?
resource-timing-api - 为什么资源计时 api 将某些资源的编码、解码和传输大小设为 0?
我正在使用资源计时 api 来捕获页面所有资源的编码、解码和传输大小,但对于某些资源,它为所有 3 个键提供零。请帮我解决这个问题。
javascript - Chrome/Firefox 下的 DNS 解析时间比 Safari 多一秒
Short:我试图弄清楚 Chrome 和 Firefox 如何在 macOS 上进行 DNS 查找与 Safari 进行 DNS 查找的根本区别。
详细信息:我有一个 HTML 页面,它向我的服务器上随机生成的(基于 GUID 的)主机名发出 AJAX 请求。在 Chrome 或 Firefox 中加载页面时,ResourceTiming 对象显示 DNS 解析比在 Safari 中花费的时间长一秒(大约 1000 毫秒)。
更多细节:无论是什么原因造成的,它只发生在这个特定的 macOS 实例上。即使是在同一台笔记本电脑上运行的虚拟机实例也没有问题。
从 Chrome 访问时的输出:
从 Safari 访问时:
显然,其他时间本身会有所不同,但 ResourceTiming 的 domainlookup 部分始终相差约 1000 毫秒。
感觉内部发生了某种超时,但我不确定,我真的不知道如何深入挖掘。
测试 HTML 页面设置在https://lax-ns8ds.com/wtf.html,尽管自己运行它可能不会显示任何内容(因为我自己在我的任何其他机器或 VM 实例上都看不到它自己的)。
我能想到的最后一个细节:我尝试使用 dtruss 来查看是否可以看到正在进行的系统调用的差异,这会给我一个关于 Chrome 和 Safari 之间差异的提示,但这并没有走得太远。
javascript - NavigationTimingAPI 可以用于异步调用吗?
我目前正在我们的项目中实现性能测量功能,它使用自定义元素 v1。
NavigationTimingAPI提供了对不同导航类型(导航、重新加载、浏览器后退/前进)的非常详细的测量:
是否也可以为异步调用提供相同的(或类似的详细信息)?或者是否还有其他我不知道的 API?
也就是说,当页面完全加载并且某些用户交互或事件触发服务器定位资源上的 POST 或 GET 时。
到目前为止,我发现的唯一一件事是使用performance.mark()
.
我在这里错过了什么重要的东西吗?
javascript - 为什么在浏览器中缓存的脚本比 iframe 源更多
我的网站有两个独立的资源——一个 JS 文件(比如 myjavascript.js)和一个 iframe(src:myiframe.html)。它们中的每一个都在每次页面加载时加载(即,它们以相同的频率加载)。两者都有相同的缓存过期时间(6 个月)。JS 文件 (40 kB) 比 HTML 文件 (30 kB) 大。
基于相对大小,我预计用户设备中的浏览器缓存较小的 HTML 文件比较大的 JS 文件更频繁。但是,来自浏览器性能资源计时的日志显示,JS 文件比 iframe 文件更频繁地被缓存。
这种行为有合理的解释吗?浏览器在缓存方面是否以不同的方式处理 JS/HTML 文件/其他资源?它们有何不同?是否有推荐的方法来增加某些资源的缓存?(在这种情况下,我正在尝试提高 HTML 文件的缓存率)
javascript - Resource Timing API - 有没有办法检索 HTTP 请求方法?
使用资源计时 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