2012-09-09 34 views
0

我更新文件时使div更新。但它不断刷新(每秒淡出和淡入)。
I'T源test2.php

动态刷新div的问题

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js> 
    </script>       
    <script> 
    $(document).ready(function() { 
     $('#loaddiv').load('check.chat.php'); 
    }); 


    var auto_refresh = setInterval(function() { 
    $.ajax(
     { 
     type: 'POST', 
     data:"id=100", 
     url: "check.chat.php", 
     success: function(result) 
     { 
      if($("#loaddiv").html() != result) 
      { 
       $("#loaddiv").fadeOut("fast") 
       $("#loaddiv").html(result); 
       $("#loaddiv").fadeIn("slow"); 
      } 
     } 
    }); 
    }, 1000); 
    </script> 

    <div id="loaddiv"></div> 

和现场文件:* *

谁知道出了什么问题?

+0

,它做的事情和你所提供的时间间隔,则需要刷新唯一的成功回调您的网页 – user973254

+0

问题出在你比较'if($(“#loaddiv”)。html()!= result)'。不知道为什么目前,但如果陈述总是验证为真,并因此你的内容闪烁。必须尝试记录Ajax调用的结果和旧的HTML,以便您可以看到它们的外观。我的猜测是那里有一些可疑的事情发生。 –

+0

如何记录ajax? – sdfh54nf5

回答

0

这一部分:

$("#loaddiv").fadeOut("fast") 
$("#loaddiv").html(result); 
$("#loaddiv").fadeIn("slow"); 

应该是:

$("#loaddiv").fadeOut("fast", function(){ 
     $("#loaddiv").html(result); 
     $("#loaddiv").fadeIn("slow"); 
}); 

在你的情况下,两个变淡被称为在同一时间,使动画队列,使其从一个阶段进入另一个在大约同一时间间隔再次触发。


UPDATE

要查看日志,这样做:因为你使用`的setInterval()`console.log("html: ", $("#loaddiv").html(), "result: ", result);

+0

我试了一下,但仍然淡出,每秒都会淡出,尽管它是相同的文字。也许这是从mysql产生文本的check.chat的问题? – sdfh54nf5

+0

是的,我不能说任何关于这个,因为没有代码... console.log对load div和ajax结果都说了什么? – Shomz

+0

我可以在哪里看到日志? – sdfh54nf5