1

我目前有一个脚本,可以从 twitter 中提取推文(关于搜索主题,例如“真棒”)并显示它们。该脚本显示最新的 20 条推文。

我想进一步开发我的脚本。我想检查页面加载后是否有任何新的推文被发布,如果是,则显示它们,同时每页仍然只显示 20 条(所以它们都向下移动)。

这是我目前所拥有的:

<?php

function get_file($uri) {       
    return file_get_contents($uri);
};

$xml = get_file('http://search.twitter.com/search.atom?q=awesome%20-rt&lang=en&rpp=20');
$tweets = new simpleXMLElement($xml);
?>
<div id="entries">
    <?php
    foreach ($tweets->entry as $tweet) {    
        echo '<div class="entry">';
        echo '<img class="tweet-pic" src="'.$tweet->link[1]->attributes()->href.'" />';
        echo '<p class="tweet">'.$tweet->title.'</p>';
        echo '<p class="tweep"><a class="link" href="'.$tweet->link[0]->attributes()->href.'">'.$tweet->author->name.'</a></p>';
        echo '<div class="clear"></div>';
        echo '</div>';
        echo '<hr/>';
    }
    ?>  
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" language="javascript"></script>

<script>
$(document).ready(function(){
getlatest();
});
function getlatest() { 
$.ajax({
    type: "GET",
    url: "index.php",
    cache: false,
    success: function(html){
            $("div#entries").prepend(html);
            $(".entry").slideDown("1000");
        }
});

setTimeout("getlatest();",10000);
}
</script>

任何帮助将非常感激。

4

1 回答 1

0

好吧,当您获得 XML 时,每条推文都有一个相关的时间戳。从这里开始,在您的 AJAX 调用中(您可以使用setTimeout每隔 X 次运行一次,您可以比较列表中的第一条推文和 XML 中的第一条推文。

如果日期较新,您应该:

  • 在您的第一条推文之后寻找下一条推文。我的意思是,来自 XML 的第一个不必是调用中的唯一新成员。
  • 获取所有新推文,从您刚刚找到的推文开始。
  • 用推文中的新 HTML 替换 HTML。
于 2011-02-21T21:03:30.060 回答