我想使用jquery的$.post
函数进行div刷新,只有修改了php脚本的json数据中返回的内容。我知道使用$.post
的ajax调用永远不会被缓存。如果使用$.post
或任何其他方法无法使用$.ajax
或$.post
,请与我联系。
由于
答案 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)
,或者你可以将它附加到事件处理程序