私が取り組んでいる Web サイトの一部は、ビデオ ページです。YouTube Data API にアクセスして、YouTube アカウントから動画を取得しています。ビデオを特定の順序や並べ替えなしで取得することは問題なく機能しますが、それらをカテゴリに分類しようとすると、問題が発生し始めます。果物、野菜、ペットの 3 つのカテゴリがあるとします。すべてのビデオを一度に取得する代わりに、Fruit でタグ付けされたすべてのビデオを取得し、<ul id="Fruit">
. 次に、野菜などのタグが付けられたすべての動画をリクエストします。
開始時に、リクエストの取得が完了して適切なリストが追加されたときに、ブラウザにアラートが表示されました。アラートを解除した後も機能しましたが、期待どおりではありませんでした。ループの進行が速すぎるか、まったく進行していませんが、間違いを見つけられないようです。最終的には、すべてのビデオが 1 つのリストにまとめられ<ul id="Vegetable">
ます。
注: jQuery の getJSON 関数をラップする jGFeed というプラグインを使用しているので、そのように扱えると思います。
var videoCategories = ['Fruit', 'Vegetable', 'Pets'];
for (var i = 0; i < videoCategories.length; i++) {
var thisCategory = videoCategories[i];
$.jGFeed('http://gdata.youtube.com/feeds/api/users/username/uploads?category='+thisCategory,
//Do something with the returned data
function(feeds) {
// Check for errors
if(!feeds) {
return false;
} else {
for(var j=0; j < feeds.entries.length(); j++) {
var entry = feeds.entries[i];
var videoUrl = entry.link;
$('ul#'+thisCategory).append('<li><a href="#" id="'+videoUrl+'">'+entry.title+'</a></li>');
}
});
}