Javascript Jquery ajax长轮询错误-Chrome
我只是在尝试一个简单的聊天应用程序的ajax长轮询。下面是js代码。它在Firefox中运行得很好,但是当涉及到chrome时,附加的文本会重复。我想不出错误是什么Javascript Jquery ajax长轮询错误-Chrome,javascript,ajax,long-polling,Javascript,Ajax,Long Polling,我只是在尝试一个简单的聊天应用程序的ajax长轮询。下面是js代码。它在Firefox中运行得很好,但是当涉及到chrome时,附加的文本会重复。我想不出错误是什么 $(document).ready(function(){ $('#chatText').keydown(function(event) { if (event.keyCode == 13) { $.ajax({ type: "GET", url:
$(document).ready(function(){
$('#chatText').keydown(function(event)
{
if (event.keyCode == 13) {
$.ajax({
type: "GET",
url: "http://example.com/Private.pl",
data: $('form#chatText').serialize(),
success: function(data) // same data posted by client to server
{
$('#chatText')[0].reset();
$("#chatLog").append(data);
$("#chatLog").scrollTop(999999)
poll();
}
})
event.preventDefault();
}
});
});
function poll() {
$.ajax({
type: 'GET',
url: 'http://example.com/Private.pl',
data: $('form#chatText2').serialize(),
success: function(msg) // other users message from server
{
$('#chatLog').append(msg);
$('#chatLog').scrollTop(999999);
},
complete: poll,
timeout: 500000
});
}
下面是HTML代码片段
<div id='chatLog' class='text-Area'></div>
<textarea name='message'></textarea>
<form id='chatText' method='post'>
<input type='submit' hidden>
</form>
<form id='chatText2' method='post'>
<input type='hidden' name='client' value='0'>
<input type='submit' hidden>
</form>
我找到了。在firefox中,每当我键入新文本并提交时,以前的轮询请求就会中止,并启动新的轮询。但在chrome中,每当我键入新消息时,新的轮询请求就会和旧的挂起请求一起添加。所以服务器在同一时间用相同的消息响应每个轮询请求。每次我发送新消息时,调用poll()方法时出错。您也可以发布相关的html吗?您好,anurupr,我已经发布了html片段。您可以为这两个调用发布msg
的值吗?很抱歉重复,这不是错误。。我把那个消息改成了数据。。然而,同样的错误在chrome中仍然存在,但在firefox中却没有。你可以尝试在轮询时设置短的超时。例如,setTimeout(poll,1000)
在调用poll函数的两个位置。