현재 LastFM API를 사용 중이며 Spotify 및 iTunes를 통해 트랙을 재생할 때 최근에 재생 된 트랙 목록을 업데이트하려고합니다. JS와 Handlebars의 조합을 통해 작동하는 초기 코드가있어 트랙의 정적 목록이 페이지로드시 현재 페이지로드에로드됩니다.setInterval 함수가 한 번만 실행됩니다.
그러나 페이지를 새로 고치지 않고 새 트랙을 선택하면 목록이 업데이트되기를 원합니다. 그래서 난 그냥 5 초마다 내 원래의 함수를 호출하는 setInterval 함수를 사용할 수 있다고 생각. 그러나 어떤 이유로 내 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 –