Maison > interface Web > js tutoriel > le corps du texte

Script de test de vitesse de rendu des pages JavaScript compétences Sharing_Javascript

WBOY
Libérer: 2016-05-16 16:52:21
original
1296 Les gens l'ont consulté

Copier le code Le code est le suivant :
/* Récupérer l'horodatage du début du rendu et enregistrer dans le tableau PAGE_SPEED_TIME* /
< ;tête>
......

Copier le code Le code est le suivant :

...
/* Page A la fin, calculez le temps de chargement de la page*/



Analysons le contenu du fichier page_speed_v2.js. Reformatez ce script pour le rendre plus facile à lire.

Copier le code Le code est le suivant :

/* 执行匿名函数构建对象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 = {
'nom' : a,
'taux' : 1,
'PAGE_SPEED_TIME' : []
};

if (!b.name) {
return
}

        if (! (typeof(PAGE_SPEED_TIME) == 'object' && PAGE_SPEED_TIME instanceof Array)))                                                                                        
/* Obtenir un nouvel horodatage */
PAGE_SPEED_TIME.push(new Date().getTime());

b.PAGE_SPEED_TIME = PAGE_SPEED_TIME;

/*

* Je ne comprends pas pourquoi une nouvelle variable aaa est nécessaire ici. N'est-il pas possible d'utiliser a directement ?

* La structure try ... catch utilise une nouvelle variable aaaa mais. Il n'a jamais été utilisé par la suite, pourquoi ? Doit-il être aaa ?

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

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

Si (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);

>


/* Soumettre des données avec une probabilité aléatoire */
If (c <= b.rate * 1) {

PageSpeed.submitDataForPageSpeed(b);

}
};

/**
* Méthode de soumission de liaison (utilisée pour le test de vitesse CDN ?)

*

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

try {
/* Essayez de soumettre les données après 1 seconde*/
setTimeout(function() {
PageSpeed.defaultSubmit()
},
1000);
} attraper(e) {}

/* Le dernier commentaire, le deuxième paragraphe est un nombre hexadécimal à 32 chiffres, qui devrait être similaire à l'ETag utilisé pour marquer la version du contenu */
/* |xGv00|ca82276cd78ac911d3d4310ba1408236 */


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal