В настоящее время я играю с API LastFM и пытаюсь обновить список недавно воспроизведенных треков, когда я воспроизвожу треки через Spotify и ITunes. У меня есть начальный код, работающий через комбинацию JS и Handlebars, так что статический список треков загружается при загрузке страницы, который является текущим во время загрузки страницы.setInterval функция только работает один раз
Однако я хочу, чтобы список обновлялся, когда я выбираю новый трек, не обновляя страницу. Поэтому я думал, что могу просто использовать функцию setInterval для вызова моей оригинальной функции каждые 5 секунд или около того. Однако по какой-то причине моя функция setInterval работает только один раз при загрузке страницы.
Я знаю, что это настоящая простая ошибка, но я не могу понять почему? Помогите!!
var clientname = {};
clientname.website = (function(){
var
initPlugins = function(){
var setupLastFM = (function(){
/* Create a cache object */
var cache = new LastFMCache(),
/* Create a LastFM object */
lastfm = new LastFM({
apiKey : '6db1989bd348bf91797bad802c6645d8',
apiSecret : '155270f02728b1936ed7699e9f7b8de9',
cache : cache
}),
attachTemplate = function(data, handlebarsTemplateID){
var template = Handlebars.compile(handlebarsTemplateID.html());
$(".container").append(template(data));
}
/* Load some artist info. */
lastfm.user.getRecentTracks({user: 'jimmersjukebox'}, {
success: function(data){
var trackData = data.recenttracks.track,
tracks = $.map(trackData, function(track) {
if(track['@attr']){
var isCurrentTrack = true;
}
return {
currenttrack: isCurrentTrack,
song: track.name,
artist: track.artist['#text']
};
});
attachTemplate(tracks, $("#trackInfo"));
}, error: function(code, message){
}}),
intervalID = window.setInterval(console.log("test"), 1000);
}());
}
return{
init: function(){
initPlugins();
}
};
})();
$(window).load(clientname.website.init);
ссылка: http://stackoverflow.com/questions/14022565/settimeout-vs-setinterval-in-javascript –