Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery ajax长轮询错误-Chrome_Javascript_Ajax_Long Polling - Fatal编程技术网

Javascript Jquery ajax长轮询错误-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:

我只是在尝试一个简单的聊天应用程序的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()方法时出错。

您也可以发布相关的html吗?您好,anurupr,我已经发布了html片段。您可以为这两个调用发布
msg
的值吗?很抱歉重复,这不是错误。。我把那个消息改成了数据。。然而,同样的错误在chrome中仍然存在,但在firefox中却没有。你可以尝试在轮询时设置短的超时。例如,
setTimeout(poll,1000)
在调用poll函数的两个位置。