$.ajax({
url: vars.url,
type: "post",
data: r,
async: true,
processData: vars.process,
contentType: vars.contenttype,
beforeSend: function(){
if(vars.loadbar == 'true'){
setInterval(function () {
$.getJSON(domain '/core/files/results.json', function (data) {
console.log(data);
})
}, 1000);
}
},
complete: function(){
clearInterval();
},
succes: function(data){
..................
}
})
所以我試圖結束我的代碼在我的ajax呼叫完成后立即產生的無限回圈。它現在幾乎每秒都會向我的檔案發送電話以獲取結果,我想在我的 ajax 呼叫完成后立即停止。
我不知道如何解決這個問題,因為如果我將一個變數分配給setInterval(在它本身的函式中beforeSend,或者在 AJAX 呼叫之外),它要么看不到變數,要么我的變數為空。我想我正在接近這個錯誤。如果 AJAX 呼叫完成以結束回圈,我可以在 beforeSend 中檢查嗎?
uj5u.com熱心網友回復:
您可以將間隔存盤為全域變數,并在需要時將其清除。像這樣:
let interval;
$.ajax({
url: vars.url,
type: "post",
data: r,
async: true,
processData: vars.process,
contentType: vars.contenttype,
beforeSend: function(){
if(vars.loadbar == 'true'){
interval = setInterval(function () {
$.getJSON(domain '/core/files/results.json', function (data) {
console.log(data);
})
}, 1000);
}
},
complete: function(){
clearInterval(interval);
},
succes: function(data){
..................
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449426.html
標籤:javascript jQuery 阿贾克斯
