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>

  • 相关阅读:
    1. 加载文件的方法
    9. 位运算符
    8. 条件(条目,三元)运算符
    3. PHP比较运算符
    hdu3336 Count the string
    Codeforces Round #228 (Div. 2)
    hdu4288 Coder(线段树单点更新)
    hdu2852 KiKi's K-Number
    poj1195
    poj2299
  • 原文地址:https://www.cnblogs.com/xkzy/p/3875769.html
Copyright © 2011-2022 走看看