0

動的に更新される div を含むサイトがあります。

ソース:

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> 
    <script> 
    var auto_refresh = setInterval(
    function()
    {
    $('#loaddiv').fadeOut('slow').load('boo.php').fadeIn("slow");
    $('#loaddiv2').fadeOut('slow').load('boo2.php').fadeIn("slow");
    }, 1000);
    </script>

しかし、boo.phpが実際のdivとは異なる(更新された)値を返す場合にのみ、フェードアウトとフェードインが必要です。
新しい値と実際の値を比較し、これを行うにはどうすればよいですか?

Ps 下手な英語で申し訳ありませんが、私はポーランド人です

4

3 に答える 3

1

返されたデータを検査し、それを div 内に既に格納されているものと比較するコールバック関数を作成する必要があります。さらに、div を表示/公開する関数も、おそらくコールバック関数に移動する必要があります。

ドキュメントはこちらから入手できます。

于 2012-07-26T14:19:09.643 に答える
0

ajax 呼び出しから取得した結果を確認し、現在のコンテンツと比較する必要があります。MsgCountAjax レスポンスと現在の Div マークアップにID を持つ要素があり、その値を使用して比較すると、以下のコードが機能します。

$(function() {
   var auto_refresh = setInterval(function(){

       var currentMsgCount= $('#MsgCount').text();
       $.get("boo.php",function(data){
          var resultData=$(data);
          var newMsgCount= resultData.filter('#MsgCount').text();
          if(newMsgCount!=currentMsgCount)
          {
            //content is different. Let's show it
             $('#loaddiv').fadeOut('slow',function(){
              $('#loaddiv').html(data).fadeIn("slow");
            });
          }
       });       
   }, 1000);
});
于 2012-07-26T14:26:32.643 に答える