javascript
  • jquery
  • refresh
  • 2012-10-23 44 views 0 likes 
    0

    我有一个<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

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

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

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

    +0

    这里是另一个版本,实际上显示每个'load()之间的毫秒数http://jsfiddle.net/Gm82w/7/ – davehale23

    +0

    divs是否被引用为ID?或者我可以在他们上面有一个类(因为有多个): –

    +0

    可以这样做:$('。refresh')。load('inc/chat.php .messages')。fadeIn(“slow “);我问的原因是因为我们把DIVS都改成了一个班,因为他们多次使用过。现在不爽快。 –

    相关问题