fe-wpo.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. function set(id, value) {
  15. try{
  16. document.getElementById(id).innerHTML = value + ' ms';
  17. }catch(e){}
  18. }
  19. var wpoStr = decodeURIComponent(location.search.substring(1));
  20. var wpo = JSON.parse(wpoStr);
  21. var t = wpo.time;
  22. var start = t.redirectStart == 0 ? t.fetchStart : t.redirectStart;
  23. set('dns', t.domainLookupEnd - t.domainLookupStart);
  24. set('dnsTotal', t.domainLookupEnd - start);
  25. set('connect', t.connectEnd - t.connectStart);
  26. set('requestTotal', t.requestStart - start);
  27. set('response', t.responseStart - t.requestStart);
  28. set('responseTotal', t.responseStart - start);
  29. set('responseEnd', t.responseEnd - t.responseStart);
  30. set('responseEndTotal', t.responseEnd - start);
  31. set('contentLoaded', t.domContentLoadedEventEnd - t.domLoading);
  32. set('contentLoadedTotal' , t.domContentLoadedEventEnd - start);
  33. set('domComplete', t.domComplete - t.domContentLoadedEventEnd);
  34. set('domCompleteTotal' , t.domComplete - start);
  35. set('loadTotal' , t.loadEventEnd - start);
  36. var h = wpo.header;
  37. for(var key in h) {
  38. try{
  39. document.getElementById(key).innerHTML = h[key] || ' - ';
  40. }catch(e){}
  41. }
  42. };
  43. return {
  44. init : init
  45. };
  46. })();
  47. //初始化
  48. baidu.pageLoadTime.init();