我多久前加载了一个页面?

How long ago did I load a page?

有没有一种方法可以使用 javascript 获取页面加载的时间,而无需在页面加载时先将时间记录到 javascript 变量?我希望创建一个 scriptlet(javascript 书签),我可以在任何网页上 运行 并让它输出自浏览器加载页面以来经过了多少时间。

到目前为止,我发现的所有 "time spent on a page" 解决方案都依赖于记录页面首次加载的时间,这需要访问修改站点或浏览器插件。是否没有在页面加载(开始、完成等)时存储的文档 属性 可以在 javascript 中访问?

您可以使用 window.performance.timing.loadEventEnd:

> performance.timing.loadEventEnd
1424280020354

window.performance.timing 为以下页面加载生命周期事件提供时间戳,顺序为:

  • 导航开始
  • unloadEventStart
  • unloadEventEnd
  • redirectStart
  • 重定向结束
  • 获取开始
  • domainLookupStart
  • domainLookupEnd
  • 连接开始
  • 连接结束
  • secureConnectionStart
  • 请求开始
  • 响应开始
  • 响应结束
  • domLoading
  • domInteractive
  • domContentLoadedEventStart
  • domContentLoadedEventEnd
  • domComplete
  • loadEventStart
  • loadEventEnd

来源:Navigation Timing API on MDN

导航计时 API 当前受大多数现代浏览器支持。例外:OSX 上的 Safari < 8、iOS 上的 Safari 和 Opera Mini。 - caniuse.com.