2014-07-15 21 views
0

我有一個遞歸函數,它在運行時鎖定我的瀏覽器。防止遞歸函數鎖定瀏覽器

當這個函數運行時,我所有的jquery命令都被鎖定,等待函數結束。

我應該怎麼做才能使此功能異步?

。此功能的document.ready

function SearchTrip() { 
$.post("/extensions/searchtrip", { 
     from: $("#from").val(), 
     to: $("#to").val(), 
     ddate: $("#ddate").val() 
    }, 
    function (mReturn) { 
     if (mReturn.fTotalAmount != '0,00') { 
      var sAirline = ''; 
      if (mReturn.Airline) 
       sAirline = ' pela ' + mReturn.Airline; 
      $("#buscandoPassagens").hide(); 
     } else if (SearchTripAmount < 5) { 
      SearchTripAmount++; 
      setTimeout(function() { 
       SearchTrip(); 
      }, 500); 
     } else { 
      $("#pNaoEncontrada").show(); 
     } 
    }, 
    "json"); 
} 
+2

你爲什麼遞歸空空呢? – Kasyx

+0

爲每個遞歸調用使用setTimeout。 –

+0

SearchTripAmount是一個全局變量嗎?你確定它在遞增嗎? – Blazemonger

回答

0

運行。如果你想異步運行它只是包裝一切與setTimeout

function SearchTrip(){ 
    setTimeout(function() { 
     //this is your $.post i just deleted 'content' to make answer easier to read 
     $.post(); 
    }, 0); 
} 
+0

好吧,但我如何結束循環後,我運行5次函數沒有結果?我不想這個功能永遠運行。 –