我想實現簡單的彗星聊天的例子,爲此我實現了長輪詢,每30秒遞歸調用自己。jQuery的方法執行幾次
當按下按鈕時我希望另一個Ajax請求在服務器上使用POST發送新數據。
現在我只是把警惕這種功能觸發點擊事件
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
var polling = function poll(){
$("#postMessage").click(function() {
alert("request");
});
$.ajax({ dataType: 'json',url: "CometServlet", success: function(data){
if (data !=null){
$('#message').append(data.sender+" : " + data.message+"<br />");
}
}, complete: poll, timeout: 30000 });
}
$(document).ready(polling)
</script>
而我的HTML是這樣的:
<div>
<input type="button" id="postMessage" value="post Message">
</div>
<div id ="message" name="message"></div>
當我點擊按鈕我的警報顯示數次。爲什麼?我該如何解決它?
您是如何等待30秒的?這不是'超時'的目的,如果那是你的想法。你確定額外的'警報'不僅僅是因爲你在每個Ajax請求完成後立即調用poll嗎? – 2012-01-08 21:32:26