Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中的停止长轮询函数_Javascript_Ajax_Jquery_Long Polling - Fatal编程技术网

Javascript JS中的停止长轮询函数

Javascript JS中的停止长轮询函数,javascript,ajax,jquery,long-polling,Javascript,Ajax,Jquery,Long Polling,我有一个页面,在那里我实现了一个长轮询函数来检查记录的时间戳,因此如果数据被编辑,它将更新 <script type="text/javascript"> var poll_url = 'http://mysite.com/poll/; var my_ts = <?php $_SESSION['template_timestamp']; ?>; (function poll(){ $.ajax({ url: poll_url, t

我有一个页面,在那里我实现了一个长轮询函数来检查记录的时间戳,因此如果数据被编辑,它将更新

<script type="text/javascript">
var poll_url = 'http://mysite.com/poll/;
var my_ts = <?php $_SESSION['template_timestamp']; ?>;
(function poll(){
    $.ajax({ 
        url: poll_url,
        type: 'post',
        success: function(data){
            if ((data.ts > 0) {
                // check if expired
                if (data.ts > my_ts) {
                    // it has expired, so reload the page
                    $("#dialog-message").html('Record has been edited.');
                    // show popup
                    $("#dialog-message").dialog({
                        modal: true,
                        buttons: {
                            Reload: function() {
                                $(this).dialog("close");
                                $('#pleaseWait').show();
                                window.location.href = '/records/overview';
                            }
                        }
                    });
                }
            } else {
                // is still null
                console.log('error');
            }
        }, 
        dataType: "json", 
        complete: poll, timeout: 30000 
    });
})();
</script>

var poll_url='1〕http://mysite.com/poll/;
var my_ts=;
(函数poll(){
$.ajax({
url:poll_url,
键入:“post”,
成功:功能(数据){
如果((data.ts>0){
//检查是否过期
如果(data.ts>my_ts){
//它已过期,请重新加载页面
$(“#对话框消息”).html('记录已编辑');
//显示弹出窗口
$(“#对话框消息”).dialog({
莫代尔:是的,
按钮:{
重载:函数(){
$(此).dialog(“关闭”);
$('plessewait').show();
window.location.href='/records/overview';
}
}
});
}
}否则{
//仍然为空
console.log('error');
}
}, 
数据类型:“json”,
完成:轮询,超时:30000
});
})();
我遇到的问题是,还有另一个调用JS ajax调用的操作,调用该调用时,我希望强制长轮询函数停止。

有没有办法做到这一点?

下面的问题可以提供答案

将其应用到代码片段中,您可能会得到一些类似于

<script type="text/javascript">
var poll_url = 'http://mysite.com/poll/';
var my_ts = <?php $_SESSION['template_timestamp']; ?>;
var poll_xhr;

(function poll(){
    poll_xhr = $.ajax({ 
        url: poll_url,
        type: 'post',
        success: function(data){
            // Code removed
        }, 
        dataType: "json", 
        complete: poll, 
        timeout: 30000 
    });
})();

// To kill the AJAX request, put this where it makes sense
poll_xhr.abort();
</script>

var poll_url='1〕http://mysite.com/poll/';
var my_ts=;
var poll_xhr;
(函数poll(){
poll_xhr=$.ajax({
url:poll_url,
键入:“post”,
成功:功能(数据){
//代码删除
}, 
数据类型:“json”,
完成:投票,
超时:30000
});
})();
//要终止AJAX请求,请将其放在有意义的地方
poll_xhr.abort();

以下SO问题可能会提供答案…@StuartWakefield;谢谢。没有找到该片段。如果您将该评论作为答案发布,我将接受它。