zoukankan      html  css  js  c++  java
  • 全局Timestamp管理器 检测js执行时间

    随手写了个小工具,主要为了测试不同混淆程度的javascript脚本的加载速度
    1. [代码]Timestamp.js     

    (function() {
     
    if (typeof this.Timestamp == 'undefined') {
        /**
         * Global timestamp manager
         * @author Janpoem
         * created at 2011.03.30
         */
        this.Timestamp = (function() {
     
            var pool = {
                'page_init': new Date()
            };
     
            return {
                add: function(flag) {
                    pool[flag] = new Date();
                },
                get: function(flag) {
                    return typeof flag == 'undefined' ? pool : (pool[flag] ? pool[flag] : pool);
                },
                diff: function(to, diff) {
                    if (!diff)
                        diff = to, to = 'page_init';
                    return (pool[to] && pool[diff]) ? pool[diff] - pool[to] : 0;
                }
            }
        }) ();
    }
     
    }) ();
    2. [代码]实际用例    ​
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>MooTools Test Page</title>http://www.huiyi8.com/donghua/​
    <script type="text/javascript">flash
    (function() {
     
    // 由于为了测试单独加载某个脚本文件的实际速度,所以该对象的代码被直接加载写在页面中
    if (typeof this.Timestamp == 'undefined') {
        /**
         * Global timestamp manager
         * @author Janpoem
         * created at 2011.03.30
         */
        this.Timestamp = (function() {
     
            var pool = {
                'page_init': new Date()
            };
     
            return {
                add: function(flag) {
                    pool[flag] = new Date();
                },
                get: function(flag) {
                    return typeof flag == 'undefined' ? pool : (pool[flag] ? pool[flag] : pool);
                },
                diff: function(to, diff) {
                    if (!diff)
                        diff = to, to = 'page_init';
                    return (pool[to] && pool[diff]) ? pool[diff] - pool[to] : 0;
                }
            }
        }) ();
    }
     
    }) ();
    </script>
    <script type="text/javascript" src="all.js" onload="Timestamp.add('load_complate');"></script>
    <script type="text/javascript">
    Timestamp.add('process_here#1');
    </script>
    </head>
    <body>
    <div id="mt_test"></div>
    <script type="text/javascript">
    console.log(
        Timestamp.diff('load_complate'),  // download a script file speed
        Timestamp.diff('process_here#1'), // html parse process here
        Timestamp.diff('load_complate', 'process_here#1')
    );
    </script>
    </body>
    </html>

  • 相关阅读:
    [转]看懂UML类图
    [转]客户需要什么样的业务解决方案
    [转]逻辑和计算机
    [转]数据库备份与恢复方案
    125个工具与技术(PMBOK2008)
    72个可交付成果(PMBOK2008)
    47个过程(PMBOK2008)
    项目管理详细任务(PMBOK2008)
    项目管理过程组和知识领域表(PMBOK2008)
    项 目 管 理 知 识 体 系 指 南 (PMBOK2008)
  • 原文地址:https://www.cnblogs.com/xkzy/p/3875769.html
Copyright © 2011-2022 走看看