Я видел кучу этих нитей и просмотрел некоторые из них, но пока ничего не помогало. Поэтому я пытаюсь вызывать таймер непрерывно, пока идет вызов ajax. Как только ajax-вызов достигает завершенного события, я бы хотел очистить Interval таймер, но это, похоже, не работает, потому что вызов CheckProgress () продолжается и продолжается.
Вот мой код:
var timer = "";
$("#ChartUpdateData").click(function () {
$("#loadingimgfeatdiv").show(); //ajax loading gif
if (timer == "")
{
console.log("Starting Progress Checks...");
timer = window.setInterval("CheckProgress()", 5000);
}
$.ajax({
type: "POST",
async: true,
url: '@(Url.Action("UpdateServerData","Charts"))',
contentType: "application/json; charset=utf-8",
success: function (data) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
},
complete:function (jqXHR, textStatus) {
$("#loadingimgfeatdiv").hide();
StopCheckingProgress();
LoadChart();
},
});
});
function StopCheckingProgress()
{
window.clearInterval(timer);
timer = "";
console.log("Ending Progress Checks...");
}
function CheckProgress()
{
console.log("Checking Progress...");
console.log(timer);
}
EDIT: