Статьи

Как отобразить твиты Джастина Бибера с асинхронной рекурсией

Итог: Джастин Бибер = трафик. Я полностью намерен использовать это в своих интересах, и никто из вас ничего не может с этим поделать. Цель сегодняшнего видеоурока — показать, как использовать страшный набор слов «асинхронная рекурсия» для постоянного отображения обновленных твитов о великом Бибстере. И, наконец, мы украдем эти твиты, чтобы они выглядели так, как будто они ссылаются на Nettuts +.


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<!DOCTYPE html>
 
<html lang=»en»>
<head>
    <meta charset=»utf-8″>
    <title>The Biebster</title>
</head>
<body>
 
    <h2> Latest Biebster Tweets </h2>
    <ul id=»tweets»> </ul>
 
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js»></script>
 
    <script>
 
    (function() {
        var UpdatePanel = {
            init : function(options) {
                this.options = $.extend({
                    interval : 5000,
                    number : 3,
                    hijackTweet : false
                }, options);
                 
                this.updater();
            },
 
            updater : function() {
                (function updateBox() {
                    this.timer = setTimeout(function() {
                        updateIt();
                        updateBox();
                    }, UpdatePanel.options.interval);
                })();
 
                // get the ball rolling
                updateIt();
 
                function updateIt() {
                    $.ajax({
                        type : ‘GET’,
                        url : UpdatePanel.options.url,
                        dataType : ‘jsonp’,
 
                        error : function() {},
 
                        success : function(results) {
                            var theTweets = »,
                                 elem = UpdatePanel.options.elem.empty();
 
                            $.each(results.results, function(index, tweet) {
                                if ( UpdatePanel.options.hijackTweet ) {
                                    tweet.text = tweet.text.replace(/(Justin )?Bieber/ig, ‘Nettuts’);
                                }
 
                                if ( index === UpdatePanel.options.number ) {
                                    return false;
                                }
                                else {
                                    theTweets += ‘<li>’ + tweet.text + ‘</li>’;
                                }
                            });
                            elem.append(theTweets);
                        }
                    });
                }
            },
 
            clearUpdater : function() {
                clearTimeout(this.timer);
            }
        };
        window.UpdatePanel = UpdatePanel;
    })();
 
    UpdatePanel.init({
        interval : 5000,
        number : 5,
        url : «http://search.twitter.com/search.json?q=bieber»,
        elem : $(‘#tweets’),
        hijackTweet : true
    });
 
 
    </script>
</body>
 
</html>

Спасибо за просмотр; Надеюсь, вам понравилось! Следите за новостями Nettuts + и сплетнями о Джастине Бибере!