0

我有一个通过ajax 调用php 函数的javascript 循环。我需要通过单击一个按钮来停止该循环。我尝试使用标签,但这是不可能的:

labelName:
for (var counter = 0; counter <= 1000; counter++) {
    ...
    ajax call
    ...
}

$('#button-stop').click(function(event) {
    event.preventDefault();
    break labelName;
});

但这会产生错误“未找到 SyntaxError 标签”。事实上,只要我输入“break labelName;” 进入循环错误消失。但是,如果我将其放入点击功能中,则无法再次识别标签。

我怎么能做到这一点?还有其他方法可以通过按钮交互来打破循环吗?谢谢。

4

1 回答 1

2

您无法以这种方式停止循环。单击按钮时,'click event' 被放入事件循环中,只有在循环结束后才会执行。因此,在您的变体中,无论如何都会将一千个请求发送到服务器。

如果要控制向服务器发送消息,最好使用间隔:

var sender = setInterval(function() {
    //ajax here
}, 1000);

$('#button-stop').click(function(event) {
    clearInterval(sender);
});
于 2012-12-28T08:39:57.810 回答