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

Mar*_*ney 9 javascript time

有没有办法让你在很久以前使用javascript加载页面,而没有首先在页面加载时记录javascript变量的时间?我希望创建一个可以在任何网页上运行的scriptlet(javascript书签),并让它输出自浏览器加载页面以来已经过了多少时间.

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

joe*_*ews 6

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

> performance.timing.loadEventEnd
1424280020354
Run Code Online (Sandbox Code Playgroud)

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

  • navigationStart
  • unloadEventStart
  • unloadEventEnd
  • redirectStart
  • redirectEnd
  • fetchStart
  • domainLookupStart
  • domainLookupEnd
  • connectStart
  • connectEnd
  • secureConnectionStart
  • requestStart
  • responseStart
  • responseEnd
  • domLoading
  • domInteractive
  • domContentLoadedEventStart
  • domContentLoadedEventEnd
  • domComplete
  • loadEventStart
  • loadEventEnd

来源:MDN上的导航时序API

大多数现代浏览器目前都支持Navigation Timing API.例外:OSX上的Safari <8,iOS上的Safari和Opera Mini.- caniuse.com.