我有以下 jQuery 代码:
<script>
$(document).ready(function() {
setInterval(function() {
$.get('async', function(data) {
$('#datum').text(data);
} );
}, 1000); // 1000 milliseconds = 1 second.
});
</script>
在这种情况下,我使用以下 html 返回来自名为 async 的 servlet 的 String 结果:
字符串要么包含单词 running,要么包含 completed。如果数据变量包含“已完成”,我想停止上面的轮询。我已经尝试了以下代码片段,但我对放置它的确切位置感到困惑,或者它是否正确:
if (data ==="completed") {
for (var i = 1; i < 99999; i++) {window.clearInterval(i);}
}
我也试过
if ( $('#datum').text(data) ==="completed" ) {
for (var i = 1; i < 99999; i++) {window.clearInterval(i);}
}
我进行了多次尝试,所有这些都破坏了功能。在不尝试停止轮询的情况下,上述方法可以很好地不断轮询并返回“正在运行”状态,除非当它达到“已完成”时,它也会继续轮询。