Извлечение Twitter Feed с JSON и JQuery - автоматически обновлять? - PullRequest
2 голосов
/ 02 января 2012

Я работаю над сценарием, который будет «извлекать» последние твиты из API Twitter, а затем отображать их в виде HTML на моей странице с помощью JQuery.

Я новичок в JQuery, так что если кто-томог бы указать мне в направлении необходимой функции на сайте JQuery, я был бы очень признателен.

В настоящее время я построил следующий скрипт:

<!-- Use the Google jQuery CDN for lib support -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!-- Setup and fetch the JSON data -->
<script type="text/javascript">
$(document).ready(function(){
var url='http://search.twitter.com/search.json?callback=?&q=@req';
$.getJSON(url,function(json){
<!-- Iterate the file -->
        $.each(json.results,function(i,tweet){
           $("#results").append('<p><img src="'+tweet.profile_image_url+'" widt="48" height="48" />'+tweet.text+'</p>');
$("#results").slideDown("slow");
        });
                    });
});
</script>
<!-- Output the file into the DIV -->
<div id="results"></div>

Скрипт работает нормально, однакоТеперь я хотел бы включить некоторую форму автоматического обновления контента.Т.е. «заново извлекать» фид каждые х минут.

Из того, что я понимаю, мне нужно заменить .append на .html, чтобы содержимое было удалено со страницы перед перезагрузкой, однако у кого-нибудь есть какие-либо предложениякак найти лучший способ обновления содержимого?Я нашел статьи, в которых выражается озабоченность по поводу утечек памяти в браузере и т. Д., И не хочу идти по неверному пути.

Я с нетерпением жду ваших ответов и еще раз спасибо.

Ответы [ 2 ]

6 голосов
/ 02 января 2012
$(function(){
    function getTweets() {
        var url='http://search.twitter.com/search.json?callback=?&q=@req';
        $.getJSON(url,function(json){

            //setup an array to buffer output
            var output = [];

            //a for loop will perform faster when setup like this
            for (var i = 0, len = json.results.length; i < len; i++) {

               //instead of appending each result, add each to the buffer array
               output.push('<p><img src="' + json.results[i].profile_image_url + '" widt="48" height="48" />' + json.results[i].text + '</p>');
            }

            //now select the #results element only once and append all the output at once, then slide it into view
            $("#results").html(output.join('')).slideDown('slow');
        });
    }

    //set an interval to run the getTweets function (30,000 ms is 5 minutes), you can cancel the interval by calling clearInterval(timer);
    var timer = setInterval(getTweets, 30000);

    //run the getTweets function on document.ready
    getTweets();

});

Вот хорошая документация для window.setInterval(): https://developer.mozilla.org/en/window.setInterval

3 голосов
/ 02 января 2012

Почему люди всегда хотят использовать огромную библиотеку, такую ​​как jQuery, для самых простых вещей?

Javascript setTimeout или setInterval может сделать этодля тебя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...