> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 페이지 렌더링 속도 테스트 스크립트 Sharing_javascript 기술

JavaScript 페이지 렌더링 속도 테스트 스크립트 Sharing_javascript 기술

WBOY
풀어 주다: 2016-05-16 16:52:21
원래의
1336명이 탐색했습니다.

코드 복사 코드는 다음과 같습니다.
/* 렌더링 시작의 타임스탬프를 가져와서 저장합니다. PAGE_SPEED_TIME* /
< 배열에 있습니다. ;head>
......

코드 복사 코드는 다음과 같습니다.

......
/* 페이지 마지막에 페이지를 로드하는 데 걸리는 시간을 계산합니다*/



page_speed_v2.js 파일의 내용을 분석해 보겠습니다. 읽기 쉽도록 이 스크립트의 형식을 다시 지정하세요.

코드 복사 코드는 다음과 같습니다.

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

if (!b.name) {
return
}

        if (! (typeof(PAGE_SPEED_TIME) == '객체' && PAGE_SPEED_TIME 인스턴스 of Array)) {
                                           ~
/* 새 타임스탬프 가져오기 */

PAGE_SPEED_TIME.push(new Date().getTime());


b.PAGE_SPEED_TIME = PAGE_SPEED_TIME;

*/ 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);

}

/* 무작위 확률로 데이터 제출 */

If (c <= b.rate * 1) {
PageSpeed.submitDataForPageSpeed(b);
}

};


/**
* Bind submit 방식 (CDN 속도 테스트에 사용?)
*
* @param String a Name

*/

PageSpeed.submit = function(a) {
var b = PageSpeed.cdn_page_speed_submitData;
var c = {};
for (var p in b) {
                c[p] =                                                                          })();

try {
/* 1초 후 데이터 제출 시도*/
setTimeout(function() {
PageSpeed.defaultSubmit()
},
1000);
} 잡기(e) {}

/* 마지막 댓글인 두 번째 문단은 32자리 16진수입니다. 이는 콘텐츠 버전을 표시하는 데 사용되는 ETag와 유사해야 합니다. */

/* |xGv00|ca82276cd78ac911d3d4310ba1408236 */



관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿