0

ajaxによってphp関数を呼び出すjavascriptループがあります。ボタンをクリックしてそのループを停止する必要があります。ラベルを使用してみましたが、できません。

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

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

ただし、これにより「SyntaxErrorラベルが見つかりません」というエラーが発生します。実際、「breaklabelName;」を入れた場合のみ ループエラーが消えます。しかし、それをクリック機能に入れると、ラベルが再び認識されなくなります。

どうすればそれを作ることができますか?ボタンの相互作用によってループを壊す他の方法はありますか?ありがとう。

4

1 に答える 1

2

この方法でサイクルを停止することはできません。ボタンがクリックされると、「クリックイベント」がイベントループに入り、サイクルが終了した後にのみ実行されます。したがって、バリアントでは、とにかく1000の要求がサーバーに送信されます。

サーバーへのメッセージ送信を制御する場合は、間隔を使用することをお勧めします。

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

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