多个settimeout调用的时间段计数

时间:2014-12-03 06:35:03

标签: javascript jquery

在几个ajax请求期间,在某段时间内调用依赖函数。我的问题是,有没有办法在不使用settimeout函数中的事件的情况下找到总时间段(200 + 300 + 500)。

//main ajax calls using following functions
setTimeout(function(){
    avg(10,15,30);
    alert('I am triggered at 2ms');//dependant function 1 (calculate avg)
},200);
setTimeout(function(){
    total(50,100,30);
    alert('I am triggered at 3ms');//df 2(calculate total)
},300);
setTimeout(function(){
    vat_cal(180,12.5);
    alert('I am triggered at 5ms');//df 3(calculate vat % for total)
},500);

假设我不知道使用了多少次setTimeout。 因此,如果知道时间因素,则通过通知加载数据会更容易。

多个ajax请求正在扼杀数据加载时间。如果我知道总时间(200 + 300 + 500 = 1000)。我可以通知用户等待一秒钟。

3 个答案:

答案 0 :(得分:0)

你的问题似乎有点模糊。但是如果你想多次重复setTimeout()函数,最好使用setInterval()函数。 我真的没有得到你想要的结果,但它应该有效。

答案 1 :(得分:0)

[Code is Here][1]


  [1]: http://jsfiddle.net/asomani/2y0t60g5/2/

Use When and Then callback method and in the last ajax request complete call the time Calculate Method.

window.time1 = new Date().getTime();

function aCallback()
{
   window.time2 = new Date().getTime(); 
   total_time = (window.time2 - window.time1)

}

$.when($.ajax({
    data: {test:"1"}
}), $.ajax({
    data: {test:"1"}
}),$.ajax({
    data: {test:"1"},
  success: aCallback
}) ).done(function( x,y,z ) {
    alert(total_time ); 

});

答案 2 :(得分:0)

function avg(x1,x2,x3)
{
 alert(x1+x2+x3)

}

function total(x1,x2,x3)
{
 alert(x1+x2+x3)

}

function vat_cal(x1,x2,x3)
{
 alert(x1+x2+x3)

}


$.when(  avg(10,15,30),total(50,100,30), vat_cal(180,12.5) ).done(function( x,y,z ) {
   alert("finish")  
});