思路:用Date类的getTime()方法获取时间戳,程序运行时间===程序结束时时间戳-程序开始时时间戳。
var dateManager = {
date: {},
num: 0,
start: function () {
// 对象的方法中,如果调用了该对象的属性,就需要使用this
this.num++;
// dateManager.num++; 不要使用这种,有的时候会有冲突
this.date["date_" + this.num] = new Date().getTime(); //第一次获取时间戳
return "date_" + this.num
},
end: function (id) {
var time = this.date[id]; //将第一次时间戳拿过来
delete this.date[id];
// this.num--; //运行完程序后保证dateManager.num=0,使用视情况而定
return new Date().getTime() - time; 第二次获取时间戳,直接计算出间隔时间
}
}
//拿个小栗子模拟一下
var id1 = dateManager.start();
for (var i = 0; i < 1000000; i++) {
//模拟增加延迟;下面的setTimeout也是此功效
}
var id2 = dateManager.start();
var ids = setTimeout(function () {
console.log(dateManager.end(id1)); //1014
clearTimeout(ids);
ids = setTimeout(function () {
clearTimeout(ids);
console.log(dateManager.end(id2)); //2003
}, 1000)
}, 1000)
可以看到,确实能有效计算出来程序运行时间,不过,每次程序运行受很多因素影响,所以并不是程序运行时间每次都一样,会有一些偏差。