2012-09-09 61 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