问题标签 [navigation-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.

0 投票
1 回答
395 浏览

jquery - 具有动态内容的 HTML5 Navigation Timing API

我想知道动态内容是否对 loadEnd 等计时值有任何影响。例如,在加载页面后,我使用 jquery 有条件地更改代码中图像的“src”属性。这是如何处理的?我尝试通过检查加载图像之前和之后的值来测试它,加载该图像后值看起来没有变化。这是否意味着导航计时 API 不包括动态内容加载?

0 投票
2 回答
1375 浏览

javascript - 为什么我使用 Web Performance API 测量渲染时间的尝试总是导致负值

我正在构建一个使用 Web Performance API 的基于 Web 的页面渲染基准应用程序。它所做的基本上是测量浏览器在命令渲染一堆 div 元素时需要多少时间,然后构建一个隐藏的表单,将计算结果放入其中,然后将表单提交到另一个 PHP 页面进行处理。问题是,计算结果一直是负数并且在几万亿范围内(即十四位数字:-1364403484035)。这是代码:

更新 1:

我对我的代码做了一些调整,如下所示:

并使用浏览器的 JavaScript 控制台查看变量的值,我发现ending = 0

0 投票
0 回答
589 浏览

performance - Navigation Timing API 显示 Internet Explorer (9+) 加载页面比 Chrome 更快

我正在使用Navigation Timing API来获取我公司网站访问者的真实用户性能数据。我正在查看使用 Chrome、Firefox 和 IE 9+ 的访问者,并关注两个主要的衡量矩阵:

页面加载=> (loadEventEnd - navigationStart) 和 Interactive => (domInteractive - navigationStart)

我收集了大量数据并注意到一些意想不到的事情,IE9+ 的页面加载和交互时间比 chrome 和 firefox 低。有没有其他人经历过这个?IE 设置的导航计时事件是否与 Chrome 和/或 Firefox 不同?从我看过的所有性能网站来看,Chrome 和 Firefox 在加载页面时应该比 IE 快得多。我检查了我的代码并测试了数十次,以确保我从 API 正确捕获数据并将其适当地存储在我的数据库中。有什么想法吗?

0 投票
1 回答
917 浏览

performance - Navigation Timing API domInteractive 在 responseEnd 之前触发(dom interactive 在响应结束之前触发)

根据 Navigation Timing API 文档,解析整个文档时会触发 DOM Interactive。ResponseEnd 在收到响应的最后一个字节时触发。查看我们的真实世界数据(我网站的访问者),我看到了许多 DOM 交互事件发生在 Response End 事件之前的情况,主要是在 Internet Explorer 9+ 中。有什么想法吗?

0 投票
0 回答
214 浏览

javascript - 为什么在 iframe 中加载的文档的 connectEnd 和 connectStart 相等?

我正在使用 Navigation Timing API 来收集一些基本的网络性能测量,如下所示:

  1. Domain A中的页面,将 iframe 插入到 DOM 中,该 DOM 下载Domain B中的另一个页面,将冗长的随机查询字符串应用于Domain B URL 以进行缓存清除。

  2. 域 B 页面中的 JavaScript 等待几秒钟,然后读取 window.performance.timing 的内容。

这些数字看起来与预期的一样,除了一件事:connectEnd 几乎总是等于 connectStart。除非我误解发生了什么,否则不应该有持久连接,浏览器也不应该从缓存中检索域 B文档。因此,浏览器应该正在建立到域 B的新连接,而 connectEnd 减去 connectStart 应该反映了这样做所花费的时间。

我已经在 Firefox、Chrome 和 IE (IE 10) 中对此进行了测试。在 Firefox 和 IE 中,我只观察到 connectEnd 等于 connectStart。它们在 Chrome 中通常也相同,但我确实看到 connectEnd 比 connectStart 一次更大。

测试页面可在http://test-pages.s3.amazonaws.com/test-navtiming.html下载另一个测试页面http://www.wildlemur.com/files/navtiming.html(加上随机请求参数)。connectStart 和 connectEnd 的值显示在浏览器控制台中。

在这种情况下,connectEnd 经常等于 connectStart 的原因是什么?

0 投票
0 回答
75 浏览

javascript - 动态创建链接,下载后返回我的页面

我有一个 html 页面,它将文件的 url 作为用户的输入。现在我打算动态生成一个下载链接,这是直截了当的。但我也想使用纯 JavaScript 捕获我们从 Performance Timing API 获得的计时信息链接。

性能计时中的计时特定于页面加载。那么有没有办法我也可以为下载链接捕获这个?

有没有办法做到这一点?

0 投票
1 回答
172 浏览

javascript - 什么时候在 NavigationTiming 对象中填充了 redirectStart?

我正在使用该NavigationTiming对象来监控我的网站的性能。

根据关于对象redirectStart属性的 W3C 文档NavigationTiming

如果导航时存在 HTTP 重定向或等效项,并且所有重定向或等效项都来自同一来源,则此属性必须返回启动重定向的获取的开始时间。

我的网站目前有一个登录页面,它提交 POST 并接收 302 重定向到欢迎页面。我希望NavigationTiming欢迎页面上的对象包含要填充的redirectStart和属性,但它们是 0。redirectEnd

什么时候应该填充它们,如果没有的话?

0 投票
0 回答
342 浏览

javascript - 使用 JSONP 时 performance.timing.loadEventEnd 设置为 0

一旦从服务器接收到页面,我想计算页面加载所用的时间,所以我使用loadEventEndresponseEnd的剩余部分。

但在我的代码中,我也使用JSONP技术,当我使用“get function getJson()”时,loadEventEnd 返回 0。

0 投票
1 回答
1001 浏览

performance - Google Analytics Site Speed 的指标如何映射到 W3C Navigation Timing API?

维度和指标参考中提供的站点速度指标的解释不清楚(至少对我而言)。它们代表Navigation Timing API中的事件,但我无法确定哪些事件是每个指标的起点和终点。

0 投票
1 回答
1992 浏览

javascript - 导航计时 API 回退

如果需要,我想使用 Navigation Timing API 来提供大量资源。一个问题是 Safari 不支持它。

我向您挑战,可能更有经验的开发人员,向我展示以下代码无法按预期工作的情况

我们检测到对 API 的支持,然后有一些回退,是的,不幸的是,必须进行一些 UA 嗅探才能为旧版本的 IE 和桌面 Safari 提供大量资源。

如果浏览器不满足这些条件中的任何一个,它要么是 iPhone 上的 Mobile Safari,要么是旧版本的 Android,我们被迫只为其提供移动优先资源。

现在,给我撕一个新的。如果这是可怕的方法,我真的很想知道。

我现在看到的唯一问题是任何没有 JS 的桌面网站都会获得移动资源。