我有一个 javascript 循环,它通过 ajax 调用 php 函数。我需要通过单击按钮来停止该循环。 我尝试使用标签,但这是不可能的:
labelName:
for (var counter = 0; counter <= 1000; counter++) {
...
ajax call
...
}
$('#button-stop').click(function(event) {
event.preventDefault();
break labelName;
});
但这会产生错误“SyntaxError label not found”。事实上,只有当我输入“break labelName;”时进入循环错误消失。但是如果我将其放入点击功能中,则无法再次识别标签。
我怎样才能做到这一点?还有其他方法可以通过按钮交互来打破循环吗? 谢谢。
最佳答案
您无法通过这种方式停止循环。当按钮被点击时,“点击事件”被放入事件循环中,只有在循环结束后才会执行。因此,在您的变体中,无论如何都会将一千个请求发送到服务器。
如果你想控制向服务器发送消息,最好使用间隔:
var sender = setInterval(function() {
//ajax here
}, 1000);
$('#button-stop').click(function(event) {
clearInterval(sender);
});
关于Javascript:单击按钮时退出 javascript 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14066714/