美文网首页
页面加载时间获取

页面加载时间获取

作者: monvhh | 来源:发表于2018-10-19 13:57 被阅读0次

曾自己借助阿里云和hexo搭了个站点,现已废弃,过往写的博客暂挪到此处。


title: 页面加载时间获取
date: 2016-12-11 14:29:17
tags:
- 技术
- Javascript
- 性能优化
- TODO


本来只是要完成一个领导交代的 获取dom加载时间 的任务,因为他说的很泛,dom加载时间,所以我要开始研究dom加载时间应该从什么时候开始算起,到什么时候结束,后来发现这个任务太不明确,我只好尽我所能多了解一些,然后把能抓到的有必要的时间都返回,到时候要是不需要删掉即可。反正我知道,他交代给我这个任务的终极目的,是为了了解页面性能。
然后,就一不小心的,接触了性能优化这件事情。
之前零零散散的看过一些文章,知道有这么件事情,然后都加入收藏夹待以后再深入。可能由于我实在喜欢刨根究底,明明给我的时间只有4个小时。。就趁着这个机会,在工作时间之外,好好研究一下。

当然时间还是有限,目前我还是在解决获取加载时间这个问题上。优化还没有。然而获取加载时间,还有问题,如下:

页面加载

在我理解,页面加载就是输入url,enter之后到window.onload事件。onload事件表示资源都已经加载完毕。

先不管我在各种文章中得到的,页面加载的过程中按照顺序做了什么。先说我自己从Chrome Timeline中得到的:

Receive Response(先receive新页面,然后才出发unload老页面??what??还有,为什么没有request?)
Receive Data
pagehide
beforeunload
unload
readystatechange
finish loading(为什么这么早就结束了?loading是什么意思?)
send Request(js)
receive response(js)
receive data(js)
parse HTML
evaluate script
parse HTML
readystatechange
DOMContentLoaded
load(window.onload)
pageshow
paint
composite layers
update layer tree

需要获取到时间段

Chrome Timeline中得到:

Loading
Scripting
Rendering
Paining
Other
Idle

Chrome可以统计这些时间,然而我通过js基本获取不到,因为很多事情都在同时进行,无法通过打点的方式分解开。

从HTML开始到window.onload的时间(这个“开始”不够明确)

打点如下
开始时间:HTML文档头第一行script 获取当前时间
结束时间:window.onload

网络请求响应时间:从输入urlenter之后,到html请求成功。

TODO 需要后端支持,待研究

其他

因为parse HTML 和js请求,执行等都在同时。根本不知道能抓什么,获取什么时间段。
TODO 暂时搁置

参考
http://www.alloyteam.com/2014/03/effect-js-css-and-img-event-of-domcontentloaded/
http://www.alloyteam.com/2016/01/points-about-resource-loading/
https://segmentfault.com/a/1190000004466407
http://www.ghugo.com/chrome-timeline/

Performance

在我谷歌如果获取加载时间(其实我是想获取不同阶段的加载时间)的时候,没有得到我想要的结果,但是不停的看到performance这个东西。但是担心兼容的问题(http://caniuse.com/#search=performance),所以没有使用,了解了一下,看起来很简单。等有空实际运用,再记录下来。
TODO

https://segmentfault.com/a/1190000004466407
http://javascript.ruanyifeng.com/bom/performance.html

好讨厌这种事情没做好的感觉。写这个时候才发觉,自己真的根本没解决这个问题,甚至只是开个头。但是不能在这个问题上耗太多时间了,自己以后一定要记得补充上来。

相关文章

  • 页面加载时间获取

    曾自己借助阿里云和hexo搭了个站点,现已废弃,过往写的博客暂挪到此处。 title: 页面加载时间获取date:...

  • jquery 获取图片高度以及hide和animate动画传参

    1、获取图片高度 首先想到的是页面加载完成之后去获取,然而页面加载时图片并没有加载完成。所以获取到的高度为0,所以...

  • 怎么获取页面加载完成的最佳时机?

    Android 开发页面的时候,一般的流程都是先加载页面,等页面加载完成后再执行其他后续操作。而获取页面加载完成的...

  • 2017笔记——UIWebView高度获取

    获取两种webview的高度:静态页面和动态页面。 思路: 当需要获取静态页面的高度时,加载完成后,获取docum...

  • 隐式等待和显示等待

    一、背景 在打开应用程序的页面时,总会有加载的时间,有时候在获取页面元素时,页面还没有加载完毕,导致无法定位某些想...

  • 小程序页面生命周期

    onLoad: 页面加载页面加载时触发,一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中...

  • jquery 表单点击提交及验证常用写法 jquery获取元素

    获取元素属性 菜鸟教程 点击关闭按钮页面重新加载

  • Vue 2

    钩子函数,表示在页面加载之后就执行代码 mounted 通过控制dom自动获取焦点 在页面加载完成之后执行代码...

  • selenium等待

    1.pageLoadTimeout 设置页面加载超时时间: //设定在加载页面时间为15秒,如果在加载时间还不能加...

  • artDialog v6 iframe 跨域请求

    在iframe中,打开dialog加载子页面。 思路: 父页面打开dialog,在子页面中写提交,获取当前dial...

网友评论

      本文标题:页面加载时间获取

      本文链接:https://www.haomeiwen.com/subject/luvyzftx.html