![](/img/trans.png)
[英]How to use the `PerformanceNavigationTiming` API to get page load time?
[英]How do I use the PerformanceNavigationTiming API to track the duration of tasks across web workers and cross origin iframes?
目前,我正在通過引發具有名稱和關聯絕對時間戳的事件來在我的 Web 應用程序上生成指標。 這些事件聚合在一個中央事件存儲庫中,如下所示:
const metricEvents = [
{ name: appStart, time: window.performance.timing.responseStart }
]
metricEvents.push({ name: 'interactive', time: new Date().getTime() })
然后我可以從開始時間中減去結束時間並獲得該任務的持續時間。
我的 Web 應用程序使用了 Web Workers 和跨源 iframe,所有這些都貢獻了自己的度量事件。
目前對我來說,從工作人員/幀發送絕對時間戳並仍然從點(例如A -> C
或B -> E
)計算事件的持續時間非常簡單。
我看到PerformanceTiming
已被棄用,而支持PerformanceNavigationTiming
。 問題是PerformanceNavigationTiming
返回與當前實體(框架、工作器、主機)相關的相對時間。 這意味着我不能再使用我現有的方法來計算任務時間。
我本能地希望從新的PerformanceNavigationTiming
API 獲得絕對時間戳,這可能還是有更好的方法來使用新 API 實現這一目標?
Performance
對象有一個timeOrigin
屬性。 您可以使用它來獲取跨多個上下文的絕對時間。
你可以從規范中看到這個例子,它准確地說明了你的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.