Ajax提要自动刷新

时间:2013-09-09 00:54:44

标签: jquery ajax

我有一个名为News feed master的自动刷新代码片段,我已经设法根据自己的喜好实现和自定义它。一切似乎都在工作,除了自动刷新,这是为了显示我的新帖子,因为我输入它而不必刷新整个页面。

以下是我的index.php的一部分,用于在数据库中查询新的提要

<?php
/**
* Preparing and getting response for latest feed items.
**/
if(isset($_POST['latest_news_time'])){
$result = $db->query("SELECT *
FROM users U, messages M WHERE U.user_id = M.uid_fk AND M.created > '".$_POST['latest_news_time']."' ORDER BY M.created DESC");
$current_time = $_POST['latest_news_time'];
$item = $db->fetch_assoc($result);
$last_news_time = $item['created'];
while ($last_news_time < $current_time) {
    usleep(1000); //giving some rest to CPU
    $item = $db->fetch_assoc($result);
    $last_news_time = $item['created'];
}
?>
            <li id="<?=$item['created']?>">
            <div class="liSub">
                <div class="feed_image"><img src="uploads/user/<?=$item['image']?>" alt="<?=$item['image']?>"></div><!-- image -->
                <div class="head"><a href="profile.php?user=<?=$item['username']?>"><?=$item['first_name']?> <?=$item['last_name']?></a><?php if($item['status']=='politician')print"<img src='images/tick.png' alt='verified' class='verified'>";?></div><!-- username -->
                <div class="feedtext"><span><?=$item['message'];?></span></div><!-- message -->
                <div class="bottom">
                <p><?=$item['like_count']?></p><a href="#"><img src="images/Like-button.png" alt="like" class="like"></a><!-- like -->
                <p><?=$item['dislike_count']?></p><a href="#"><img src="images/disLike-button.png" alt="dislike" class="dislike"></a><!-- dislike -->
                <p><?=$item['comment_count']?> Comment(s)</p><!-- comments -->
                </div>
            </div>
            </li>
<?php
exit;
}
?>

这是我的javascript应该执行自动刷新的一部分

/**
* Function to update the news feed
**/
function updateFeed(){
    var id = 0;
    id = $('#feeds li :first').attr('id');
    $.ajax({
        'url' : 'index.php#feeds ul',
        'type' : 'POST',
        'data' : {
            'latest_news_time' : id  
        },
        success : function(data){
            setTimeout('updateFeed()', 1000);
            if(id != 0){
                $(data).prependTo("#feeds ul");
            }
        }
    }) 
}

如果你能帮助发现问题,我会很高兴的。我根本不是jquery的专业人士,所以它给了我不眠之夜。感谢。

1 个答案:

答案 0 :(得分:0)

有一个可选的cache,其默认值为true。在你的ajax调用中添加这个:

'cache': false,

此外,您可能会收到隐藏错误,因为您没有错误处理程序:

error: function(jqXHR, textStatus, errorThrown){

    alert(textStatus);

}