Jquery POST刷新div

时间:2011-07-10 13:45:59

标签: php jquery ajax json

我想使用jquery的$.post函数进行div刷新,只有修改了php脚本的json数据中返回的内容。我知道使用$.post的ajax调用永远不会被缓存。如果使用$.post或任何其他方法无法使用$.ajax$.post,请与我联系。

由于

4 个答案:

答案 0 :(得分:6)

为什么不缓存电话的响应?

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

这只是一个例子,您应该根据自己的需要(以及返回的数据结构)进行调整

答案 1 :(得分:0)

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

       result = r;
    }
});

答案 2 :(得分:0)

你的问题不是很清楚,但是这样的事情怎么样......

  <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" />

我认为您应该使用.getJSON(),就像我在那里使用它一样,它很紧凑,并提供您需要的所有功能。

答案 3 :(得分:0)

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

然后你可以在一个时间间隔内调用shouldRefreshDiv(refreshDiv),或者你可以将它附加到事件处理程序