2012-04-19 5 views
0

ブロブ用のGoogleアプリエンジンに多くのリクエストを行いたいと思います。この基本的なforループメソッドは正しい数の要素を作成しますが、すべてが最後に要求されたBLOBを指しています。blobをGoogleアプリケーションエンジンに多くのajaxリクエストを作成する方法

for (key=0; key < keyList.length; key++){ 
    var keyUrl = '/serve_blob/audio/'+keyList[key]; 
    $.ajax({ url : keyUrl, type : 'GET', dataType : 'text', 
     success : function(data, xhr, status) { 
      renderTemp("#audioTable", "audioTemplate", {'audioSrc':keyUrl}); 
     } 
    }); 
} 

私は、ajax完全コールバックから呼び出して正常に動作するようにもう一度リクエストすることができます。これを多くのリクエストに対して機能させるには良い方法がありますか?

+1

詳細を入力してください。あなたの問題が何であるかを理解することは本当に難しいですし、コードにはあなたの話題が含まれていません –

答えて

0

これは閉鎖の性質です。クロージャー内のコード(たとえば、成功関数内のコード)が実行されると、keyUrlの値は最後に設定された値になります。クロージャーが定義された時点で値が取り込まれません。

これを避けるには、ajax呼び出しを別の関数の中に入れ、パラメータとしてkeyUrlをループ内から呼び出します。

+0

それはまさに私が知りたいことでした。ありがとう! – Justin

0

「キー」を反復していませんか?あなたはそれを使用していません...

var keyUrl = '/serve_blob/audio/'+keyList[key]; 
+0

それを指摘してくれてありがとう。それは私の例の問題でした。 – Justin

関連する問題