2012-12-28 88 views
0

我有一個JavaScript循環,由ajax調用一個PHP函數。我需要通過點擊一個按鈕來停止這個循環。 我試圖使用標籤,但它是不可能的:Javascript:退出javascript循環時點擊按鈕

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

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

但這個牌子的錯誤「的SyntaxError標籤未找到」。實際上只有當我把「break labelName」進入循環錯誤消失。但是,如果我把它放到點擊功能不能再次識別標籤。

我該如何做到這一點?是否有其他方式通過按鈕交互來打破循環? 謝謝。

+0

使用event.preventDefault或返回false; – Vimalnath

回答

2

您無法通過這種方式來停止循環。點擊按鈕時,'click event'被放入事件循環中,並且只有在循環結束後纔會執行。因此,在您的變體中,無論如何都會將一千個請求發送到服務器。

如果你想控制消息發送到服務器,最好是使用間隔:

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

$('#button-stop').click(function(event) { 
    clearInterval(sender); 
}); 
+0

謝謝!我用這種方法,一切正常! – user1910413