急,ajax循环请求

俊尚 发布于 2013/03/08 12:14
阅读 536
收藏 0

是这样的,我要每隔几秒请求一次数据库,查询是否那个值已变动,那个值的变动是不确定时间的

所以要总是进行AJAX请求,直到获得结果为止,求高手给一段简单,可靠,稳定的代码

以下是问题补充:

@俊尚:不隔时间也行 (2013/03/08 13:10)
加载中
0
只会百度的程序员
只会百度的程序员
var timer = setInterval(function(){
    $.post(url,{},function(data,textState){
        if(data.flg){
            clearInterval(timer);
        }
    },"json");
},1000);
0
高得顺
高得顺
看OSC主页代码啊...
0
俊尚
俊尚
recive: function () {
    var me = this;
    $ajax({
        type: 'post', dataType: 'json', url: 'Level2Check.aspx', data: 'model=check&cardNumber=43030219881109xxxx',
        beforeSend: function () { $$("btnReadCard").disabled = true; },
        success: function (da) {
            if (da != null && da.result != 0) {
                alert("字段值已改变");
            }
             me.recieve(); },
        complete: function () { $$("btnReadCard").disabled = false; },
        timeout: 1000 * 5,
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            if (textStatus == "timeout") { alert("认证超时\n可能由于网络繁忙,请重试"); } 
        }
    });
}
//自已乱写了一个,求帮忙
0
宅男小何
宅男小何
开长连接?dwr有
宅男小何
宅男小何
@俊尚 http1.1协议不是支持长连接吗?把header里面的keep-alive 。服务器也要做相应的支持。
俊尚
俊尚
用的jquery
0
ideaa
ideaa

引用来自“高得顺”的答案

看OSC主页代码啊...
$.jheartbeat = {
        options: {delay: 10000},
        beatfunction:  function(){},
        timeoutobj:  {id: -1},

        set: function(options, onbeatfunction) {
            if (this.timeoutobj.id > -1) {
                clearTimeout(this.timeoutobj);
            }
            if (options) {
                $.extend(this.options, options);
            }
            if (onbeatfunction) {
                this.beatfunction = onbeatfunction;
            }

            this.timeoutobj.id = setTimeout("$.jheartbeat.beat();", this.options.delay);
        },

        beat: function() {
            this.timeoutobj.id = setTimeout("$.jheartbeat.beat();", this.options.delay);
            this.beatfunction();
        }
    };

调用方法:

    function timer(func, interval){
        $.jheartbeat.set({delay: interval}, func);
    }
    timer(auto_save, 5000);

俊尚
俊尚
谢谢,我研究下
返回顶部
顶部