如何检查div是否更新?

时间:2012-07-26 14:14:33

标签: php jquery

我有动态刷新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时,我才想要fadeout和fadein。
如何比较新值和实际值并执行此操作?

P.抱歉英语不好但我是波兰语

3 个答案:

答案 0 :(得分:1)

您需要编写一个回调函数来检查返回的数据,并将其与已存储在div中的数据进行比较。此外,显示/显示div的函数可能也需要移动到回调函数。

文档可用here.

答案 1 :(得分:0)

您需要检查从ajax调用中获得的结果,并将其与当前内容进行比较。假设您的Ajax响应和当前Div标记中有一个ID为MsgCount的元素,并且您使用的值进行比较,则以下代码将起作用

$(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);
});

答案 2 :(得分:0)

你必须给boo.php写一个Ajax函数,并将结果与​​div的值进行比较

$.ajax(
{
    url: "boo.php",
    success: function(result) 
    {
        if($("#loaddiv").html() != result)
        {
            $("#loaddiv").fadeOut("slow")
            $("#loaddiv").html(result);
            $("#loaddiv").fadeIn("slow");
        }
    }
});