Потяните твиты через php, обновите через JQuery / Ajax - PullRequest
1 голос
/ 21 февраля 2011

В настоящее время у меня есть скрипт, который извлекает твиты (по теме поиска, например, «круто») из твиттера и отображает их. Скрипт отображает последние 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>

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 22 февраля 2011

Хорошо, когда вы получаете XML, каждому твиту соответствует временная метка.Отсюда, в вашем вызове AJAX (который вы можете запускать каждый раз X с setTimeout , вы можете сравнить первый твит в вашем списке и первый из XML.

Если его датапозже вы должны:

  • Искать следующий твит после вашего первого. Я имею в виду, что первый из XML не должен быть уникальным новым в вызове.
  • Получите все новые твиты, начиная с только что найденного.
  • Замените HTML новым твитом.
...