长轮询ajax问题

长轮询ajax问题,ajax,long-polling,Ajax,Long Polling,我已经设置了一个轮询脚本,它基本上检查通知队列是否有新的通知可用。如果是,它将显示它们并从队列中删除通知 我使用的是firebug,当我重新加载页面时,上一个投票保持打开状态,并创建一个新的投票 function poll(){ $.ajax({ url: "test.php", dataType: "json", complete: poll, timeout: 30

我已经设置了一个轮询脚本,它基本上检查通知队列是否有新的通知可用。如果是,它将显示它们并从队列中删除通知

我使用的是firebug,当我重新加载页面时,上一个投票保持打开状态,并创建一个新的投票

        function poll(){
        $.ajax({
            url: "test.php",
            dataType: "json",
            complete: poll,
            timeout: 30000,

            success: function(data){
               $.gritter.add({

                    title: 'This is a regular notice!',

                    text: data.message,

                    image: 'http://a0.twimg.com/profile_images/59268975/jquery_avatar_bigger.png',

                    sticky: false,

                    time: ''
               });
            },
            error: function(){
                alert("OMG ERROR");
            }
        });
    };
    poll();

我很确定原因是您将poll作为完整函数传递,有效地创建了一个非终止或级联递归(不知道这是否是编程101中的正确术语…

我今天才开始处理poll,但这不是保持poll运行的想法。因此,如果添加了另一个通知,则会通知用户?这是轮询的想法,但在您的方法中,complete是轮询本身的一部分,因此如果您自己调用自己,这是一个递归。您可以使用匿名函数$.ajax({complete:function(){poll();},…..})进行尝试,您是正确的。我已经拿走了那本书;完成:轮询并添加轮询();在成功区域内,这似乎是好的。谢谢你的帮助。