如何取消原型ajax调用?

时间:2015-03-05 03:18:30

标签: javascript html ajax prototype

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

        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毫秒发送一次请求。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您应该将Ajax.Request对象保存在变量&amp;然后在那上运行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();
}