我有一个类似于FaceBook的系统,其中的帖子会自动从MySQL中的表中更新。目前,它只是每隔10秒刷新一次div。这是代码:
<script type="text/javascript">
var auto_refresh = setInterval(
function(){
$('#refresh').load('index.php?_=' +Math.random()+' #refresh').fadeIn("slow");
}, 10000);
</script>
我希望只有在MySQL表中有新行并且新结果淡入时才更新div。 有办法做到这一点吗?我到处搜索,并尝试了一切,但似乎没有任何工作。
答案 0 :(得分:1)
谷歌长轮询是你用于服务器端编程的任何语言研究它的方法。我正在使用java和comet api。
答案 1 :(得分:0)
我发现了怎么做。如果有人有同样的问题,这就是我使用的:
var cacheData;
var data = $('#refresh').html();
var auto_refresh = setInterval(
function ()
{
$.ajax({
url: 'index.php',
type: 'POST',
data: data,
dataType: 'html',
success: function(data) {
if (data !== cacheData){
//data has changed (or it's the first call), save new cache data and update div
cacheData = data;
//$('#refresh').fadeOut("slow").html(data).fadeIn("slow");
//$('#refresh').fadeOut("slow").load('index.php?_=' +Math.random()+' #refresh').slideDown("slow");
$('#refresh').fadeOut("fast");
$('#refresh').load('index.php?_=' +Math.random()+' #refresh');
$('#refresh').fadeIn("slow");
}
}
})
}, 1000);