繁体   English   中英

jQuery Ajax长轮询错误-Chrome

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM