假设我们有这个:
function myMethod1() {
...
}
稍后在代码中:
myMethod1();
alert('myMethod1() was executed!');
我需要为警报设置超时,以便在 myMethod1() 执行后调用它。但是我怎么知道 setTimeout 函数的第二个参数的值呢?如何测量 myMethod1() 执行所需的时间?
MyMethod1() 有一个异步 ajax 调用。
假设我们有这个:
function myMethod1() {
...
}
稍后在代码中:
myMethod1();
alert('myMethod1() was executed!');
我需要为警报设置超时,以便在 myMethod1() 执行后调用它。但是我怎么知道 setTimeout 函数的第二个参数的值呢?如何测量 myMethod1() 执行所需的时间?
MyMethod1() 有一个异步 ajax 调用。
如果您的方法执行异步任务,通常会像这样传递回调函数:
function myMethod(cb)
{
// some code, such as $.ajax
$.ajax({
url: 'example.com',
complete: function() {
// we're done, notify callback
cb();
}
});
}
然后,cb
在执行时像这样传入:
myMethod(function() {
alert('method is done');
});
alert('method returned, but is still doing stuff in the background');
这是异步设计的口头禅;每个在后台执行任务的方法都会有某种方式通知回调函数其完成。
但是,如果该方法是同步的,您可以cb()
在函数体的末尾调用,但保留您所拥有的会容易得多:
myMethod();
alert('method is done');
你不需要。按照您设置的方式,完成后将alert
始终触发。 myMethod1()
您可以使用时间戳,精确到毫秒。
您将需要 2 个变量,一个用于保存开始时间,一个用于结束时间。并设置那些你想要计算的变量。所以
///下面的编辑版本使其成为全球性的..
把它放在你的 js 代码的顶部:
var ts_start;
var ts_stop;
把它放在你想开始计算时间的地方:
ts_start =new Date().getTime();
把它放在你想停止计算时间的地方:
ts_stop =new Date().getTime();
您可以通过在它们之间设置差异来提醒毫秒。
alert(ts_stop-ts_start);
或者把它推到一个变量中......