我目前正在一个学校项目中使用Spotify API。到目前为止,我已经收到了有人正在听的当前歌曲。
但是问题是,仅在刷新或打开网站后才接收信息,但是我希望它保持每秒刷新一次(而不刷新整个页面),因此它与侦听器是最新的。这里有人对我如何实现这一目标有任何想法吗?
这是我正在使用的AJAX请求(我不确定它是否有用)
$.ajax({
url: 'https://api.spotify.com/v1/me/player/currently-playing',
headers: {
'Authorization': 'Bearer ' + access_token
},
success: function(response) {
userInfoPlaceholder.innerHTML = userInfoTemplate(response);
console.log(response);
$('#login').hide();
$('#loggedin').show();
}
});
如果我需要发布其他代码以寻求帮助,请告诉我!
答案 0 :(得分:1)
您可以设置setInterval
。每定义一个秒就会调用一个函数。
setInterval(function(){
callAjax();
}, 1000);
var callAjax = function(){
// Write you ajax here
}
答案 1 :(得分:1)
您可以使用setTimeout或setInterval实现此目的。
区别在于setInterval在指定的时间间隔内再次执行给定的功能再次(直到调用clearInterval()函数); setTimeout在指定的时间间隔后立即执行给定功能一次。
完成响应的必要过程后。您可以在函数末尾递归调用makerequest()函数。该行中的注释提供了makerequest()函数,该函数将在10秒钟后再次调用。
function makerequest() {
$.ajax({
url: 'https://api.spotify.com/v1/me/player/currently-playing',
headers: {
'Authorization': 'Bearer ' + access_token
},
success: function(response) {
userInfoPlaceholder.innerHTML = userInfoTemplate(response);
console.log(response);
$('#login').hide();
$('#loggedin').show();
//process with the response and other stuffs
setTimeout(makerequest, 10000); //recursive call
}
});
}