Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.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 如何取消原型ajax调用?_Javascript_Html_Ajax_Prototype - Fatal编程技术网

Javascript 如何取消原型ajax调用?

Javascript 如何取消原型ajax调用?,javascript,html,ajax,prototype,Javascript,Html,Ajax,Prototype,我有一个ajax调用,它每10毫秒发送一次请求: function sendRequest(){ new Ajax.Request(getProgressUrl, { method: 'get', onComplete: function(transport) {

我有一个ajax调用,它每10毫秒发送一次请求:

        function sendRequest(){
                    new Ajax.Request(getProgressUrl,
                    {
                          method: 'get',
                          onComplete: function(transport) {
                             setTimeout(updateCsvExportProgress, 10);
                          },
                          onFailure: function(xhr, json) {

                          }
                    });
        }
还有一个按钮:

<button id="stopIt" onclick="stopAjaxRequest()">STOP</button>
停止
我想知道如何停止/中止ajax调用,因为它每10毫秒发送一次请求


提前感谢。

您应该保留
Ajax。在变量中请求
对象,然后在该变量上运行
abort

您的代码应该如下所示:

var ajaxRequest = null;

function sendRequest() {
    ajaxRequest = new Ajax.Request(getProgressUrl, {
        method: 'get',
        onComplete: function(transport) {
            setTimeout(updateCsvExportProgress, 10);
        },
        onFailure: function(xhr, json) {

        }
    });
}

function stopAjaxRequest() {
   if(ajaxRequest !=null)
    ajaxRequest.transport.abort();
}

如果您想停止周期性调用,只需设置一个标志也可以(不要基于该标志调用setTimeout)。要取消正在进行的请求,请按照@Capsule建议的链接进行操作。