自动刷新聊天问题

时间:2012-10-23 03:50:15

标签: javascript jquery refresh

我有一个<div id="refresh">,里面有一些MySQL内容。我有这个JavaScript代码:

<script type="text/javascript">
    var auto_refreshs_contents = setInterval(
        function(){
            $('#refresh').load('index.php?_=' +Math.random()+' #refresh').fadeIn("slow");  // load div.refresh
        }
    , 3000); // refresh every 3 seconds
</script>

它实际上是第一次发布代码的副本,所以它看起来像这样:

    0 seconds
+-------------------------------------+
|Randome Text                         |
|This is such a cool chat room        |
|Not really                           |
+-------------------------------------+
    3 seconds
+-------------------------------------+
|Randome Text                         |
|This is such a cool chat room        |
|Not really                           |
|This is such a cool chat room        |
|Not really                           |
+-------------------------------------+

如果你注意到这一点,它就会遗漏“随机文本”这个帖子。我不知道为什么。 但是,它基本上是第一次这样做。然后在6秒之后刷新,但没有更多内容,之后,它会刷新正确。所以我决定在刷新之前清除页面内容:

<script type="text/javascript">
    var auto_clearContents = setInterval(
        function(){
            $("#refresh").html(""); //clear contents of div#refresh
        }
    , 3000);  //clear existing contents every 3 seconds

    var auto_refreshs_contents = setInterval(
        function(){
            $('#refresh').load('index.php?_=' +Math.random()+' #refresh').fadeIn("slow");  // load div.refresh
        }
    , 3000); // refresh every 3 seconds
</script>

然而,当事情变得奇怪时。我正在查看Chrome开发者工具中的networks标签,它显示每200毫秒左右刷新一次(是200),有时需要2.5秒。我不知道......

我的代码有问题吗?有没有更好的方法呢?谢谢!

1 个答案:

答案 0 :(得分:1)

我认为后端肯定有问题。 Here is a fiddle基本上只显示你在说什么,而且工作正常。

当您看到200毫秒时,我认为可能是生成index.php页面所需的时间,而不是间隔之间的时间。

如果您向我们展示来自php页面或php页面本身的响应,我们可能会提供帮助。