【问题标题】:How long ago did I load a page?我多久之前加载了一个页面?
【发布时间】:2015-02-18 17:09:01
【问题描述】:

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

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

【问题讨论】:

  • 您可以从 HTTP 标头中获取日期。看到这个帖子:stackoverflow.com/questions/27968368/…
  • 您可以从window.performance.timing 获取时间。请查看this 了解更多详情:)
  • Arkantos 打败了我。不过,看起来该 API 在 iOS 8.1 中已被删除!这很令人失望。
  • @Katana314 这意味着 iPhone + iPad 没有这些信息,但 PC 浏览器有?
  • @Katana314.. 感谢您提及 :) 正如您所看到的 here,它在 iOS 8.1 中已被删除,但仍有很多浏览器支持它

标签: javascript time


【解决方案1】:

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

> performance.timing.loadEventEnd
1424280020354

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

  • 导航开始
  • unloadEventStart
  • 卸载事件结束
  • 重定向开始
  • redirectEnd
  • fetchStart
  • domainLookupStart
  • domainLookupEnd
  • 连接开始
  • 连接结束
  • secureConnectionStart
  • 请求开始
  • 响应开始
  • 响应结束
  • domLoading
  • domInteractive
  • domContentLoadedEventStart
  • domContentLoadedEventEnd
  • domComplete
  • loadEventStart
  • loadEventEnd

来源:Navigation Timing API on MDN

目前大多数现代浏览器都支持 Navigation Timing API。例外:OSX 上的 Safari caniuse.com.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多