Я пытаюсь реализовать простой пример чата Comet, и для этого я реализовал длинный опрос, который вызывает сам себя рекурсивно каждые 30 секунд.
При нажатии на кнопку я хочу, чтобы другой 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>
Когда я нажимаю на кнопку, моё предупреждение показывается несколько раз. Зачем? Как я могу решить это?