从setInterval函数中获取返回值

时间:2010-11-25 22:53:15

标签: javascript

我有一个被调用的ajax函数并返回json数据。这个函数是通过setInterval循环调用的:

    function SetMaxBidReload() {
        var reloadInt = 6000;
        var doReload = true;

        //set some logic here

        if (doReload) {
            setInterval(function () { ReloadMaxBid(); }, reloadInt);
        }
    }

    function ReloadMaxBid() {
        var nextReload;
        $.ajax({
            url: 'ajaxcall.aspx',
            cache: false,
            success: function (data) {
                //change to dom elemants here based on return data
                nextReload = data[0].NextReload;
            }
        });
        return nextReload;

    }
我试图做的是根据从ajax调用返回的内容更改setInterval的reloadInt。

a:可能吗?b:我该怎么做?

我可以通过不同的编码方式获得有关如何实现这一目标的建议

1 个答案:

答案 0 :(得分:2)

setInterval获取超时参数一次,然后根据该时间间隔执行该函数,更改reloadInt将不会产生任何影响。

您需要在成功回调中使用setTimeout

function ReloadMaxBid() {
    $.ajax({
        url: 'ajaxcall.aspx',
        cache: false,
        success: function (data) {
            //change to dom elemants here based on return data

            var next = data[0].NextReload;
            if (next !== -1) {
                setTimeout(function(){ReloadMaxBid();}, next);
            }
        }
    });
}

您还需要在某处使用值setTimeout的{​​{1}}来开始工作。

相关问题