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>

  • 相关阅读:
    [SCOI2007]降雨量
    [SCOI2005]骑士精神
    LUOGU P1342 请柬
    spfa的复活
    Luogu P2396 yyy loves Maths VII
    Luogu P2801 教主的魔法
    HEOI2012 采花
    USACO05DEC Cleaning Shifts
    CF438D The Child and Sequence
    Codechef October Challenge 2019 Div.2
  • 原文地址:https://www.cnblogs.com/xkzy/p/3875769.html
Copyright © 2011-2022 走看看