HTML5的学习--performance获取加载时间的工具

前段时间因为项目需要获取页面加载的时间,就去看了下HTML5中的performane。

可以用其获得页面详细的加载时间。

关于performance的详细内容可以查看 http://www.cnblogs.com/CraryPrimitiveMan/p/3795086.html

之后用performane写了一个小工具,用来获取页面详细的加载时间。

GitHub上的地址是:https://github.com/CraryPrimitiveMan/performance-tool

只在chrome中通过了测试。

将times.js引入想应的HTML中,打开console(按F12),刷新一下页面就可以看到详细的加载时间。 也可以在JS中使用times()方法调用。

其运行结果如下图

源码及注释如下

var times = function() {
    var timing = performance.timing;
    var loadTime = timing.loadEventEnd - timing.navigationStart;//过早获取时,loadEventEnd有时会是0
    if(loadTime <= 0) {
    // 未加载完,延迟200ms后继续times方法,直到成功
        setTimeout(function(){
            times();
        }, 200);
        return;
    }
    var readyStart = timing.fetchStart - timing.navigationStart;
    var redirectTime = timing.redirectEnd  - timing.redirectStart;
    var appcacheTime = timing.domainLookupStart  - timing.fetchStart;
    var unloadEventTime = timing.unloadEventEnd - timing.unloadEventStart;
    var lookupDomainTime = timing.domainLookupEnd - timing.domainLookupStart;
    var connectTime = timing.connectEnd - timing.connectStart;
    var requestTime = timing.responseEnd - timing.requestStart;
    var initDomTreeTime = timing.domInteractive - timing.responseEnd;
    var domReadyTime = timing.domComplete - timing.domInteractive; //过早获取时,domComplete有时会是0
    var loadEventTime = timing.loadEventEnd - timing.loadEventStart;

    // 为console.table方法准备对象,包含耗时的描述和消耗的时间
    var allTimes = [
        { "描述": "准备新页面时间耗时", "时间(ms)": readyStart },
        { "描述": "redirect 重定向耗时", "时间(ms)": redirectTime },
        { "描述": "Appcache 耗时", "时间(ms)": appcacheTime },
        { "描述": "unload 前文档耗时", "时间(ms)": unloadEventTime },
        { "描述": "DNS 查询耗时", "时间(ms)": lookupDomainTime },
        { "描述": "TCP连接耗时", "时间(ms)": connectTime },
        { "描述": "request请求耗时", "时间(ms)": requestTime },
        { "描述": "请求完毕至DOM加载", "时间(ms)": initDomTreeTime },
        { "描述": "解释dom树耗时", "时间(ms)": domReadyTime },
        { "描述": "load事件耗时", "时间(ms)": loadEventTime },
        { "描述": "从开始至load总耗时", "时间(ms)": loadTime }
    ];
    console.table(allTimes);
}
window.onload = times;// onload时,触发times方法

HTML5的学习--performance获取加载时间的工具

时间: 2024-08-05 17:25:09

HTML5的学习--performance获取加载时间的工具的相关文章

通过chrome浏览器分析网页加载时间

今天趁着下班的时间看了下chrome浏览器的网页加载时间分析工具和相关文档,简单写点儿东西记录一下. 以百度首页加载为例,分析下一张图片1.jgp(就是背景图)的加载时间 看右侧的Timing标签,从下往上看各个阶段: 最下面一行,Explanation是一个链接,它链接到了chrome对Timing解释的文档(从这里可以看出chrome对开发人员真的很友好),这张图片加载总共花费的时间为:36.32ms. Content Download,浏览器下载响应文件所花费的时间26.84ms,与本地网

python 分析android日志获取activit加载时间

最近有个需求,需要对比前后两个版本单个activity加载的时间 在android日志中我们可以看到类似INFO/ActivityManager(2486): Displayed activity com.teleca/.ContextMenuActivity: 240 ms (total 41289 ms)的日志,即为Activity的加载时间 首先通过adb logcat > xx.txt获取日志,然后用如下代码分析日志: #-*-coding:utf-8 -*- # 分析android a

HTML5的学习--performance

HTML5提供的performance接口精确的告诉我们当访问一个网站页面时当前网页每个处理阶段的精确时间(timestamp),以方便我们进行前端分析. 它是浏览器的直接实现,比在网页中用js设置Date.time或者cookie来分析网页时间上要精确很多. 支持浏览器: IE9+,Chrome11+,Firefox7+. 以下是w3c提供的performance.timing各阶段api图 成员: .navigation (一个叫做performanceNavigation的对象.) .ti

利用Navigation Timing测量页面加载时间

最近在看一本名为<web性能实践日志>的书籍,其中第十三章"网络计时"中介绍了一种比较新的计算页面各部分加载时间方法,这也是W3C Web性能工作小组正在做的事情,接下来我就给大家大概介绍一下: 首先先撇开这篇文章所要介绍的,如果要你来写一段代码来计算整个页面加载的时间的话,我们一般都会这样做:获得页面开始加载的时间和结束加载的时间,两个一减便是页面加载的时间了,没错,代码如下: 1 <html> 2 <head> 3 <script type

OGEngine学习笔记---资源加载

声音管理兼容各种音频文件格式,比特率和样本率 OGEngine开源引擎兼容各种音频视频文件格式,并且引用了硬件加速技术,来对音频文件进行io读取,简化了资源的加载和读取写入的过程,大幅度减少应用卡顿.无响应的状况出现. 一个背景音乐 多个音效 OGEngine开源引擎在同一时间只能播放一首背景音乐,但是能同时播放多个音效. 首先自定义一个枚举类ConfigData,用来存放背景音乐key和音效key. public class ConfigData { /** 背景音乐*/ public sta

测试网页加载时间(转)

网站的加载速度是决定网站等级的重要因素,值得站长特别关注.原因很简单,没有人愿意为了打开一个网页而等老半天,换句话说,如果你的网站打开速度 很慢,将流失大量的访客,甚至出现多米诺效应的不良影响.在埋头深入代码中试图提高网站速度之前,先要确定导致网站访问速度缓慢的真正原因是什么.本文收 集了非常有用的WEB服务和工具,可以帮助你诊断和分析你的网站,让你更加全面的了解自己的网站性能. 在线测试工具 测试网站所有对象的加载时间(HTML,images,JavaScript,CSS,嵌入式框架等).您还

Unity3D - 图形性能优化:优化着色器加载时间

Unity官方文档之"图形性能优化-优化着色器加载时间"的翻译,E文链接. Optimizing Shader Load Time 优化着色器加载时间 Shaders are small programs that execute on the GPU, and loading them can take some time. Each individual GPU program typically does not take much time to load, but shade

深入java虚拟机学习 -- 类的加载机制(续)

昨晚写 深入java虚拟机学习 -- 类的加载机制 都到1点半了,由于第二天还要工作,没有将上篇文章中的demo讲解写出来,今天抽时间补上昨晚的例子讲解. 这里我先把昨天的两份代码贴过来,重新看下: class Singleton { private static Singleton singleton = new Singleton(); //第一份代码的位置 public static int counter1; public static int counter2=0; private s

我是如何将页面加载时间从6S降到2S的?

写在前面 生活在信息爆炸的今天,我们每天不得不面对和过滤海量的信息--无疑是焦躁和浮动的,这就意味着用户对你站点投入的时间可能是及其吝啬的(当然有一些刚需站点除外). 如何给用户提供迅速的响应就显得十分重要了,这可能成为你留住用户的关键.即使网站设计的再优秀,功能再完美,但是响应的巨慢,用户的耐心很快会被耗光,这可能成为他最后一次访问,这绝对不是危言耸听,最近有幸参与到了公司海外站点项目,对于这点深有体会. 问题的复盘 某一天海外运营告知说最近几天的海外站点pv,uv下降严重,希望技术帮忙查看一