利用performance统计网站的加载新能

介绍利用H5 api接口performance,统计网站的加载时间,进而优化加载速度。
在做H5项目的时候,首屏加载会是一个比较重要的部分,加载越快,用户流失就会越少,受限于网络等原因,可能一些人看到首页较快,一些人看到首页较慢,然后作为程序员却无法准确得知加载慢是因为什么原因造成的,没有办法去细化优化点。
幸运的是H5新API接口performance能让我们做的更多一点

window.onload = function(){
    setTimeout(function(){
        with(performance){
            readyStart = timing.fetchStart - timing.navigationStart;
            redirectTime = timing.redirectEnd  - timing.redirectStart;
            appcacheTime = timing.domainLookupStart  - timing.fetchStart;
            unloadEventTime = timing.unloadEventEnd - timing.unloadEventStart;
            lookupDomainTime = timing.domainLookupEnd - timing.domainLookupStart;
            connectTime = timing.connectEnd - timing.connectStart;
            requestTime = timing.responseEnd - timing.requestStart;
            initDomTreeTime = timing.domInteractive - timing.responseEnd;
            domReadyTime = timing.domContentLoadedEventEnd - timing.navigationStart;
            loadTime = timing.loadEventEnd - timing.navigationStart;
             //过早获取时 domComplete有时会是0loadEventTime = timing.loadEventEnd - timing.loadEventStart;loadTime = timing.loadEventEnd - timing.navigationStart;
             //过早获取时 loadEventEnd有时会是0
            console.log('准备新页面时间耗时: ' + readyStart);
            console.log('redirect 重定向耗时: ' + redirectTime);
            console.log('Appcache 耗时: ' + appcacheTime);
            console.log('unload 前文档耗时: ' + unloadEventTime);
            console.log('DNS 查询耗时: ' + lookupDomainTime);
            console.log('TCP连接耗时: ' + connectTime);
            console.log('request请求耗时: ' + requestTime);
            console.log('请求完毕至DOM加载: ' + initDomTreeTime);
            console.log('DOM加载完成: ' + domReadyTime);
            console.log('从开始至load总耗时: ' + loadTime);
        }
    },2000) 
}

通过分析,发现用此方法 DOM加载完成和全部加载完成耗用的时间和chrome浏览器NETWORDK面板上显示的DomContentLoaded 、Load时间基本一致,误差几ms,
所以我们基本上可以用这个方法来统计我们所做的H5网站在不同地域、不同客户端下加载H5所耗用的时间,进而逐个优化。比如DNS耗时拉 DOM加载耗时了 等等

window.performance.timing.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,062评论 25 709
  • 拥挤的人潮在鸣笛声中变得慌乱,风瑟瑟地吹着。这里是严寒的北方小城,树木枝条疏朗地立着,覆着尘,地面是泥水和脚印混杂...
    大葱zan酱阅读 2,649评论 0 0
  • 前言 自从用了vim后,其他IDE就懒得去切换了。原因很简单,程序员这条路走的长了,总要接触不同的语言,我喜欢熟悉...
    ShukeZheng阅读 5,568评论 0 0
  • “我是全宇宙最傻的大逼!” 王八坨子街口,董小球正蹲在路中间,在行人看傻逼的目光下,用吃屎的劲头吼出一句风骚彪悍的...
    万吨小蚂蚁阅读 3,349评论 0 0