0

dajaxice 関数を呼び出す setInterval を使用して Twitter フィードを定期的に取得しようとしていますが、関数を複数回呼び出すのに問題があります。setInterval は、コンソールに行を書き込むだけの場合に機能しますが、dajaxice 関数を呼び出そうとすると、一度しか発生しません。

ajax.py:

@dajaxice_register
def get_home_timeline(request):
    home_timeline = oauth_req(
    'http://api.twitter.com/1/statuses/home_timeline.json?count=2',
    settings.TWITTER_TOKEN_KEY,
    settings.TWITTER_TOKEN_SECRET
    )
    return simplejson.dumps({'home_timeline': home_timeline })

def oauth_req(url, key, secret, http_method="GET", post_body=None, http_headers=None):
    consumer = oauth.Consumer(key=settings.TWITTER_CONSUMER_KEY, secret=settings.TWITTER_CONSUMER_SECRET)token = oauth.Token(key=key, secret=secret)
client = oauth.Client(consumer, token)

resp, content = client.request(
url,
    method=http_method,
    # body=post_body,
    # headers=http_headers,
    # force_auth_header=True
)
return content

base.html:

var get_timeline = Dajaxice.modules.ticker.get_home_timeline(get_home_timeline_callback);

    function getTweets(){
        intervalId = setInterval(get_timeline, 2000);
    }

助けてくれてありがとう、

ジェイソン

4

1 に答える 1

1
var get_timeline = 
   Dajaxice.modules.ticker.get_home_timeline(get_home_timeline_callback);

これは関数を呼び出すためのクロージャーではなく、(間隔を設定する前に) すぐに関数を呼び出します。

欲しいと思って

var get_timeline = function(){
   Dajaxice.modules.ticker.get_home_timeline(get_home_timeline_callback);
};
于 2012-08-29T02:52:54.777 に答える