我正在尝试显示自定义播放列表的200多个视频(保存在我的数据库中)。我想使用ajax和setInterval连续显示整个列表,让Youtube API呼吸一下。
这是我的代码:
for(var i in a.playlist_rows) {
iTime += 100;
setTimeout(function() {
$.ajax({
url:'https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails&id='+a.playlist_rows[i].videoID+'&key=XXX',
method:'GET',
cache:false,
dataType:'json',
success:function(a) {
callPageSuccess(a);
showIn = "playlist_content_show";
$('button#btn_play').prop('disabled', false);
$('button#btn_play_repeat').prop('disabled', false);
},
error:function() {
showError('danger', 'Erreur XHR détectée. Contactez le staff.');
}
});
}, iTime);
}
实际上,由于setInterval(),这是每个ajax调用中将要调用的最后一个视频ID。如何获得这个呢?
答案 0 :(得分:0)
通过在我的匿名函数中传递参数来找出解决方案:
for(var i in a.playlist_rows) {
iTime += 100;
setTimeout(function(videoID) {
$.ajax({
url:'https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails&id='+videoID+'&key=AIzaSyAHLt89IGVRiB8aAI4hUFpRFxkxQTHAqZo',
method:'GET',
cache:false,
dataType:'json',
success:function(a) {
callPageSuccess(a);
showIn = "playlist_content_show";
$('button#btn_play').prop('disabled', false);
$('button#btn_play_repeat').prop('disabled', false);
},
error:function() {
showError('danger', 'Erreur XHR détectée. Contactez le staff.');
}
});
}, iTime, a.playlist_rows[i].videoID);
}