一、写在前面
Performance api
用于精确度量,控制,增强浏览器的性能表现。这个API为了测量网站性能,提供以前没有办法做到的精度。
比如:为了得到脚本运行的准确时间,需要一个高精度时间戳。传统的做法是使用Date
对象的getTime
方法。
var start = new Date().getTime()
let i = 100
while(i) {
console.log('111')
i--
}
var now = new Date().getTime()
var latency = now - start
console.log(latency)
上面这种做法有两个不足之处。首先getTime
方法,只能得到毫秒级别,想要得到更小的时间差别就无能为力了。其次这种写法只能获取代码运行过程中的时间进度,无法知道一些后台事件的时间进度,比如浏览器用了多少时间从服务器加载网页。
为了解决两个不足之处,ES5引入高精度时间戳
这个API,部署在Performance
对象上。它的进度可以达到1ms的千分之一,对于衡量的程度的细微差别,提高程序运行速度很有好处,而且还可以获取后台事件的时间进度。
二、具体API
2.1、performance.timing对象
performance
对象的timing
属性指向一个对象,它包含了各种与浏览器性能相关的时间数据,提供浏览器处理网页各个阶段的耗时。比如,performance.timing.navigationStart
就是浏览器处理当前网页的启动时间。
<script>
console.log(Date.now() - performance.timing.navigationStart) //134</