Jquery POST刷新div

I want to use $.post function of jquery to do a div refresh, only if the content returned in the json data from the php script is modified. I know that ajax calls with $.post are never cached. Please help me with $.post, or $.ajax if it is not possible with $.postor any other method with which this is possible.

Thanks

Why don't you cache the response of the call?

var cacheData;
$.post({.....
         success: function(data){
                  if (data !== cacheData){
                     //data has changed (or it's the first call), save new cache data and update div
                   cacheData = data;
                   $('#yourdiv').html(data);
                   }else{
                   //do nothing, data hasan't changed

This is just an example, you should adapt it to suit your needs (and the structure of data returned)

var result;
$.post({
    url: 'post.php'
    data: {new:'data'} 
    success: function(r){
       if (result && result != r){
        //changed
       }

       result = r;
    }
});

Your question isn't exactly clear, but how about something like this...

  <script type="text/javascript">
    $(document).ready(function(){
      $("#refresh").click(function(){
        info = "";
        $.getJSON('<URL TO JSON SOURCE>', function(data){
          if(info!=data){
            info = data;
            $("#content").html(data);
          }
        });
      });
    });
  </script>
  <div id="content"></div>
  <input id="refresh" type="submit" value="Refresh" />

I think you should use .getJSON() like I used it there, it's compact, and offers all the functionality you need.

var div = $('my_div_selector');
function refreshDiv(data){
    // refresh the div and populate it with some data passed as arg
    div.data('content',data);
    // do whatever you want here
}
function shouldRefreshDiv(callback){
    // determines if the data from the php script is modified
    // and executes a callback function if it is changed
    $.post('my_php_script',function(data){
        if(data != div.data('content'))
            callback(data);
    });    
}

then you can call shouldRefreshDiv(refreshDiv) on an interval or you can attach it to an event-handler