我有一个长时间运行的数据库更新,我想在它发生时报告它。我启动间隔时间我已经看到了很多关于 setInterval 问题的例子,它看起来很简单,但我无法用这段代码来触发它。checkSaveStatus 代码拉回一个状态报告,该报告告诉您已保存了多少行。一旦我可以使基本功能正常工作,我将在显示结果后对其进行增强。
我开始怀疑这可能与我处理 Ajax 调用的方式有关。
var checkTimer;
function checkSaveStatus() {
var saveStatus = ajaxCall("WebServices/FLSAService.asmx/CheckFLSASaveStatus");
if (saveStatus == null) {
clearInterval(checkTimer);
return;
}
log('saveStatus: ' + saveStatus.InputCount + '/' + saveStatus.ResultCount + ':' + saveStatus.SaveComplete, 'FLSA');
if (saveStatus.SaveComplete) {
reportSaveComplete = true;
clearInterval(checkTimer);
}
}
checkTimer = window.setInterval(checkSaveStatus, 1000);
... make an asynchronous Ajax call that takes a long time to complete
... the checkSaveStatus code doesn't fire until the Ajax call completes