首页 > 解决方案 > 如何等待 window.performance.timing 中的所有值都被定义

问题描述

window.performance.timing目前我在一个window.addEventListener('load', function () {...})函数中读取值。但是在 safari 中,有些值loadEventEnd仍然设置为0.

如何以window.performance.timing基于事件的最佳方式延迟我的呼叫,直到定义此值和其他值?

标签: javascriptdom-eventsnavigation-timing-api

解决方案


在加载事件中做一个额外的延迟。

window.addEventListener('load', check)

function check() {
  if (performance.getEntriesByType("navigation")[0].loadEventEnd && other_values()) {
    callToPerformanceTiming()
  }
  else setTimeout(check, 0); //put it back in queue
}

只要loadEventEnd0重复检查。
你也可以 在你做之前检查它是否已经other_values()通过
callToPerformanceTiming()


推荐阅读