Ajax从MySQL的新结果中淡出

时间:2013-04-15 10:36:19

标签: jquery mysql ajax

我有一个类似于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。 有办法做到这一点吗?我到处搜索,并尝试了一切,但似乎没有任何工作。

2 个答案:

答案 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);