-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
window.performance 详解 #5
Comments
相当不错 |
@hehongwei44 多谢支持~~ |
用在实际项目中了嘛 稳定性怎么样 |
@hehongwei44 实际测速就是用performance接口的,移动端支持度在40~60%左右。 |
我也是用performance对像来上报的,不过没有你封装的优雅 |
还请教你一个问题,不支持performance对象的浏览器 怎么做上报的。腾讯是怎么做的呢?@fredshare |
不支持performance的情况下,我们做了domready、onload、白屏时间等的统计,通过埋点的方式进行计算统计,比如domready,head最前面埋一个点,html尾部卖一个点,两个之间的差值大约等于domready时间;onload就是用DOMContentLoaded触发的时候打点等。 |
有写地方没太明白,setTimingRpt中的f1,f2,f3_ie,f3_c 具体指的是什么?我只是把_da上传服务器接口,你的那些参数是不是对我作用不大? |
还有个问题就是,你的_da参数得到的值都是与navigationStart的差值,比如我要得到“解析dom树耗时”,但是_da没有提供,你们是不是后台对其进行了处理。 |
@hehongwei44 这个demo中的函数是一个标准的上报performance接口的函数 |
哦 我了解了,不过你上传页面的URL应该也可以做到区分是哪个页面的上报吧,只是你们自己对齐封装了吧。 |
@hehongwei44 是的,前端封装好了,后台来区分比较麻烦,需要维护一大堆map对应表 |
哦 我了解了,因为你我的业务场景不一样,你的函数看样子,我不能直接拿上就用。自己还得在你的代码上做一层封装。 |
if (!_t.domContentLoadedEventStart) { |
能说说异常出现的原因嘛 |
关于其中几项值的计算方法有些疑问,麻烦楼主解答 |
mark |
@ywang1724 所以说白屏时间计算的不对,白屏时间=开始渲染时间(首字节时间+HTML下载完成时间)+头部资源加载时间;对应的应该是白屏时间=domLoading - navigationStart +头部资源加载时间;头部资源加载时间还是要自己算 |
loadEventEnd:文档触发 load事件结束后 的时间。如果load事件没有触发,那么该接口就返回0。所以在onload 里计算这个是不是会出问题? |
|
大神 ,你好。敢问如何测试监控移动端设备呢?没写过js,不知道怎么弄,望百忙之中指点一二,多谢!!! |
你这里的白屏时间计算是错误的,没有包括头部资源加载的时间 |
@reaperme ,在responseStart开始的时候,页面就开始渲染了。 |
@zqs-zjj-1208 移动端监控是一样的,移动端也有performance接口 |
@hellozhangran 这里的请求耗时指的是从发起请求到请求结束的时间 |
您好,请问怎么获取每个资源的waiting time ? |
图片看不到了,是我网络的问题吗? |
window.performance详解
performance的作用
浏览器暴露给js的一个接口,可以通过这个接口查看用户访问网站的连接建立时间、dns时间等信息。使用该api时需要在页面完全加载完成之后才能使用,最简单的办法是在window.onload事件中读取各种数据,因为很多值必须在页面完全加载之后才能得出。
浏览器支持情况
IE9和chrome6以上的版本都支持:
各个值的详细含义
可以看到api的接口定义如下:
memory:浏览器内存情况
注:usedJSHeapSize表示所有被使用的js堆栈内存;totalJSHeapSize表示当前js堆栈内存总大小,这表示usedJSHeapSize不能大于totalJSHeapSize,如果大于,有可能出现了内存泄漏。
navigation :网页导航相关
一个只读属性,返回当前页面是几次重定向才过来的。但是这个接口有同源策略限制,即仅能检测同源的重定向。
返回值应该是0,1,2 中的一个。分别对应三个枚举值:
0 : TYPE_NAVIGATE (用户通过常规导航方式访问页面,比如点一个链接,或者一般的get方式)
1 : TYPE_RELOAD (用户通过刷新,包括JS调用刷新接口等方式访问页面)
2 : TYPE_BACK_FORWARD (用户通过后退按钮访问本页面)
timing :测速相关
组合值的意义
performance.getEntries 资源测速
比如图中type为img的图片整个加载时间为duration ms。
可以通过这个接口统计整个页面有多少img、css、js以及对应的下载时间等信息。
常用统计方法
performance 测速上报
performance chrome可视化插件
performance chrome可视化插件
未完待续!!
参考:
HTML5 performance API 草案
Resource Timing
The text was updated successfully, but these errors were encountered: