防止递归功能锁定浏览器

时间:2014-07-15 15:23:03

标签: javascript jquery recursion

我有一个递归函数,它在运行时锁定我的浏览器。

当此函数运行时,我的所有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");
}

1 个答案:

答案 0 :(得分:0)

如果要以异步方式运行它,只需用setTimeout包装所有内容:

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