fe-wpo.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * 注册命名空间
  3. */
  4. baidu.namespace.register("baidu.pageLoadTime");
  5. /**
  6. * 统计网页加载时间
  7. * @author zhaoxianlie
  8. */
  9. baidu.pageLoadTime = (function(){
  10. /**
  11. * 获取网页的加载时间
  12. */
  13. var init = function(){
  14. // 获得wpo信息
  15. var wpoStr = decodeURIComponent(location.search.substring(1));
  16. var wpo = JSON.parse(wpoStr);
  17. // 页面信息
  18. document.getElementById("pageTitle").innerHTML = wpo.pageInfo.title || "无";
  19. document.getElementById("pageUrl").innerHTML = wpo.pageInfo.url || "无";
  20. // 各阶段加载时间
  21. function set(id, value) {
  22. try{
  23. document.getElementById(id).innerHTML = value + ' ms';
  24. }catch(e){}
  25. }
  26. var t = wpo.time;
  27. var start = t.redirectStart == 0 ? t.fetchStart : t.redirectStart;
  28. set('dns', t.domainLookupEnd - t.domainLookupStart);
  29. set('dnsTotal', t.domainLookupEnd - start);
  30. set('connect', t.connectEnd - t.connectStart);
  31. set('requestTotal', t.requestStart - start);
  32. set('response', t.responseStart - t.requestStart);
  33. set('responseTotal', t.responseStart - start);
  34. set('responseEnd', t.responseEnd - t.responseStart);
  35. set('responseEndTotal', t.responseEnd - start);
  36. set('contentLoaded', t.domContentLoadedEventEnd - t.domLoading);
  37. set('contentLoadedTotal' , t.domContentLoadedEventEnd - start);
  38. set('domComplete', t.domComplete - t.domContentLoadedEventEnd);
  39. set('domCompleteTotal' , t.domComplete - start);
  40. set('loadTotal' , t.loadEventEnd - start);
  41. // HTTP Header
  42. var h = wpo.header;
  43. if(!h) {
  44. document.getElementById("pageHeaderInfo").style.display = "none";
  45. }else{
  46. for(var key in h) {
  47. try{
  48. document.getElementById(key).innerHTML = h[key] || ' - ';
  49. }catch(e){}
  50. }
  51. }
  52. };
  53. return {
  54. init : init
  55. };
  56. })();
  57. //初始化
  58. baidu.pageLoadTime.init();