我想实现简单的彗星聊天的例子,为此我实现了长轮询,每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