0

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

4

2 回答 2

1

谷歌长轮询是针对您用于服务器端编程的任何语言进行研究的方法。我正在使用 java 和 comet api。

于 2013-04-15T10:53:57.973 回答
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);
于 2013-04-16T08:41:00.157 回答