JavaScript setInterval - функция вызывается только один раз
Я пытаюсь периодически получать твиттер-каналы, используя setInterval, вызывая функцию dajaxice, но у меня возникают проблемы с вызовом функции более одного раза. 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);
}
Спасибо за любую помощь,
Джейсон
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);
};