Javascript 如何取消原型ajax调用?
我有一个ajax调用,它每10毫秒发送一次请求:Javascript 如何取消原型ajax调用?,javascript,html,ajax,prototype,Javascript,Html,Ajax,Prototype,我有一个ajax调用,它每10毫秒发送一次请求: function sendRequest(){ new Ajax.Request(getProgressUrl, { method: 'get', onComplete: function(transport) {
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建议的链接进行操作。