Skip to content

Instantly share code, notes, and snippets.

@jikeytang
Last active August 29, 2015 14:03
Show Gist options
  • Save jikeytang/f1ba2a061f4369133dcc to your computer and use it in GitHub Desktop.
Save jikeytang/f1ba2a061f4369133dcc to your computer and use it in GitHub Desktop.
[ Javascript ] - 20140703-题目1
用js如何精确的计算出前端页面渲染加载时间?
PS:
1. 回复时注意加上下面这句话,才会有语法高亮或格式缩进。
```javascript
// you code
```
2. 粘贴代码时请使用shift+tab,缩进前面的空白。
@coderlee
Copy link

coderlee commented Jul 3, 2014

是精确计算吧?
这个加载是什么概念呢?从客户端发起请求算起?还是服务器收到响应后算起?这是关键问题。
如果是发起请求算起,这个就没办法了,中间DNS解析之类的时间没办法计算,除非发起请求时带时间戳参数过去。

@rambo-panda
Copy link

如果仅仅计算页面前端渲染速度的话 倒是可以简单粗暴的使用 console.time

@leirayen
Copy link

leirayen commented Jul 3, 2014

console.time 只能适用在chrome啊,IE呢

@ljkfgh2008
Copy link

如果只是页面加载时间 http://jsbin.com/tasuq/1/edit 这样行么

@hi500
Copy link

hi500 commented Jul 3, 2014

在页面开始拿到当前时间戳,然后用页面结尾拿到的时间戳减去它,取差值,精准不精准,就不知道了。欢迎大家拍砖~

var sTime = +new Date();
for(var i = 0; i < 99999; i++){

}
var eTime = +new Date();
console.log(eTime - sTime);

@jikeytang
Copy link
Author

@coderlee 题目已改。

@leirayen
Copy link

leirayen commented Jul 3, 2014

我觉得可以这么干,页面加载时的时间戳和页面完全load完成后的时间戳之差

var time1 = (new Date()).valueOf();
document.body.onload = function(){
  var time2 = (new Date()).valueOf();
  alert('time is  : ' + (time2 - time1));
}

@mailzwj
Copy link

mailzwj commented Jul 3, 2014

我记得W3C制定了一个 Web Performance 的API,具体怎么计算的,我已经记不清了
W3C地址是:http://www.w3.org/TR/navigation-timing/
这个计算出来应该还是比较精确的
无意中还发现了别人做的一个页面,与这个API相关的
Github Page地址:http://github.kainy.cn/NavigationTiming/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment