我需要的是让 javascript 继续检查条件(类似于 while 循环)。我通过执行 setInterval 来执行此操作,如果满足条件,我会清除然后退出的间隔,或者如果它已经运行 X 次,如果我有以下情况,我将其设置为 100。
我不太喜欢这个,我把它放在一起是因为它有效。我正在检查来自服务器的数据,这很慢。我想要一个替代方案的主要原因是我有一个在 AJAX 调用启动时运行的加载 gif,我将把这段代码粘贴到底部只是为了显示。它运行缓慢,所以我相信当 javascript 在间隔中时,它无法渲染 gif,所以运动图像会停止。
有人知道做我想做的事情的替代方法吗?我希望这是有道理的?
function checkCondition(name,action){
var timesRun = 0;
var success = false;
var interval = setInterval(function() {
timesRun++;
var container = {};
container = mapSystem["desktop"];
if(action === "delete"){
var isExisting = name in container ;
if ( !isExisting || (timesRun === 100)) {
//break out of this interval
clearInterval(interval);
renderCheckList();
success = true;
} else {
// Update mapNodeData with fresh data
updateData('desktop', false); // Just updates data
}
}
}, 2000);
}
// Code that I have to render a loading GIF. Works great but seems
// to stop during the interval
$('#loading').hide().ajaxStart(function() {
$(this).show();
}).ajaxStop(function() {
$(this).hide();
});