Heim > Web-Frontend > js-Tutorial > JavaScript-Seiten-Rendering-Geschwindigkeitstestskript-Sharing_Javascript-Fähigkeiten

JavaScript-Seiten-Rendering-Geschwindigkeitstestskript-Sharing_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 16:52:21
Original
1305 Leute haben es durchsucht

Code kopieren Der Code lautet wie folgt:
/* Holen Sie sich den Zeitstempel des Beginns des Renderns und speichern Sie ihn es im Array PAGE_SPEED_TIME* /
< ;head>
......

Code kopieren Der Code lautet wie folgt:

...
/* Seite Berechnen Sie am Ende die Zeit, die zum Laden der Seite benötigt wird*/



Lassen Sie uns den Inhalt der Datei page_speed_v2.js analysieren. Formatieren Sie dieses Skript neu, um es leichter lesbar zu machen.

Code kopieren Der Code lautet wie folgt:

/* 执行匿名函数构建对象PageSpeed */
;(function() {
    PageSpeed = {};/* 这里没有 var 关键字, 相当于引用的是 window.PageSpeed */

 /**
     * 绑定createScript方法
  *
  * @param String a script标签的src属性的值
  * @param String b script标签的id属性的值
  */
    PageSpeed.createScript = function(a, b) {
        var c = null;

        if (document.getElementById(b)) { /* script标签已经存在 */
            c = document.getElementById(b)
        } else { /* 不存在, 创建script标签 */
            c = document.createElement('script');
            var d = null;
            if (document.getElementsByTagName) {
                d = document.getElementsByTagName('head')[0] || document.documentElement;
            } else {
                d = document.documentElement;
            }
            d.insertBefore(c, d.firstChild); /* 调用insertBefore方法, 将新创建的script标签插入为第一个子元素 */
        }

  /* 这里的花括号起到代码片段分组功能 */
  {
            c.setAttribute('type', 'text/html');
            c.setAttribute('style', 'display:none;');
            c.setAttribute('charset', 'gb2312');
            c.setAttribute('id', b);
            c.setAttribute('src', a);
        }

        return c; /* 返回创建成功的script标签元素 */
    };

 /**
     * 绑定 submitDataForPageSpeed 方法
  *
  * @param Object a Map对象
  */
    PageSpeed.submitDataForPageSpeed = function(a) {
        var b = {
            'name': '',
            'rate': 0
        };
        b.name = a.name;
        b.rate = a.rate;

  /* a.PAGE_SPEED_TIME数组的最后一个元素减去第一个元素 */
        b['1'] = a.PAGE_SPEED_TIME[a.PAGE_SPEED_TIME.length - 1] - a.PAGE_SPEED_TIME[0];

        for (var i = 1; i < a.PAGE_SPEED_TIME.length - 1; i++) {
            b[(i + 1) + ''] = a.PAGE_SPEED_TIME[i] - a.PAGE_SPEED_TIME[0]
        }

  /* 提交速度测试结果的目的脚本 */
        var c = 'http://pagespeed-ied.qq.com/r.cgi';

  /* 遍历 b 数组的元素, 构建 query string */
        var d = [];
        for (var p in b) {
            d.push(p + '=' + b[p])
        }
        c += '?' + d.join('&');

  /* 创建script标签提交测速结果 */
        PageSpeed.createScript(c, 'submitForPageSpeed')
    };

 /**
  * 绑定 defaultSubmit 方法
  *
  */
    PageSpeed.defaultSubmit = function() {
        var a = '';
        try {
            a = location.host
        } catch(e) {}

var b = {
'name': a,
'rate': 1,
'PAGE_SPEED_TIME': []
};

if (!b.name) {
return
}

        if (! (typeof(PAGE_SPEED_TIME) == 'object' && PAGE_SPEED_TIME Instanz von Array))                                                                                
/* Neuen Zeitstempel abrufen */
PAGE_SPEED_TIME.push(new Date().getTime());

b.PAGE_SPEED_TIME = PAGE_SPEED_TIME;

/*

* Ich verstehe nicht, warum hier eine neue Variable aaa benötigt wird. Ist es nicht möglich, a direkt zu verwenden?

* Die try ... Catch-Struktur verwendet eine neue Variable aaaa, aber Es wurde später nie verwendet, warum? Sollte es aaa sein?

*/
var aaa = '';
try {
aaaa = location.host
} Catch(e) { }

var c = Math.floor(Math.random() * 10000);

If (aaa == "ktv.qq.com" || aaa == "ttd.qq.com" || aaa == "tian.qq.com" || aaa == "sura.qq.com " || aaa == "gw.tnt.qq.com" || aaa == "007.qq.com") {

                      c = Math.floor(Math.random() * 1000);

}


/* Daten mit Zufallswahrscheinlichkeit übermitteln */
If (c <= b.rate * 1) {

PageSpeed.submitDataForPageSpeed(b);

}
};

/**
* Bind-Submit-Methode (wird für den CDN-Geschwindigkeitstest verwendet?)

*

* @param String a Name
*/
PageSpeed.submit = function(a) {
var b = PageSpeed.cdn_page_speed_submitData;
var c = {};
for (var p in b) {
                c[p] =                                                                    })();

versuchen Sie {
/* Versuchen Sie, Daten nach 1 Sekunde zu übermitteln*/
setTimeout(function() {
PageSpeed.defaultSubmit()
},
1000);
} Catch(e) {}

/* Der letzte Kommentar, der zweite Absatz, ist eine 32-stellige Hexadezimalzahl, die dem ETag ähneln sollte, der zum Markieren der Inhaltsversion verwendet wird */
/* |xGv00|ca82276cd78ac911d3d4310ba1408236 */


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage