如何在jquery中获取事件的完成时间

时间:2013-03-08 06:17:59

标签: javascript performance jquery

嗨我正在使用jquery。

我有一个复选框点击事件

jQuery('.btn-check-box').click(function () {

    //code goes here .
});

问题是点击事件需要相当长的时间才能完成。有些时候浏览器会卡住。 所以我想改变函数内部的代码并减少完成时间。

现在我想获得当前点击活动的完成时间。 然后更改代码并再次检查完成时间。

所以我可以根据完成时间优化我的代码。

有没有办法检查活动完成时间。 请帮忙。 提前谢谢。

3 个答案:

答案 0 :(得分:6)

将事件作为参数传递。

var createdTime;
jQuery('.btn-check-box').click(function(e){ 
  createdTime = e.timeStamp;
}).done(function(){ calculate time difference });

如果您将使用console.log(e),那么它将显示jQuery已经在触发事件时传递时间戳。

所以现在你需要找到一种方法甚至完成所以.done() jQuery方法将帮助你。

在.done()方面,您也可以获得相同的e.timestamp并进行一些数学计算,以便在第二,几分钟或任何时间内获得所需的输出。

答案 1 :(得分:1)

像SrinivasR所说,完成时间 - 开始时间。

jQuery('.btn-check-box').click(function () {
    var t0 = (new Date()).getTime();
    //code goes here
    console.log("Event took",(new Date()).getTime() - t0, "ms to complete.");
});

答案 2 :(得分:1)

请尝试以下代码

jQuery('.btn-check-box').click(function () {
var secondStart = new Date().getTime() / 1000;
    // Your code goes here .
var secondEnd = new Date().getTime() / 1000;
var totalTime = secondEnd - secondStart;
console.log('Executing took' +totalTime +'seconds' )
});