[英]Jquery ajax long polling error- Chrome
我只是想为一个简单的聊天应用程序进行ajax长轮询。 这是js代码。 它在Firefox中效果很好,但是在chrome上 ,重复了附加的文本。 我不知道是什么错误。
$(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()方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.