2

ディレクトリが他のディレクトリにリンクするファイルシステムディレクトリのような、ツリーのような構造に従うためにAJAXリクエストを実行したいと思います。私の場合のみ、ID を追跡する REST API に従います。すべてのリクエストと同様に、サブディレクトリ (および最後に「ファイル」) の ID のリストを受け取ります。

だから私がやりたいことは、forEach を使用して AJAX 呼び出し内で AJAX 呼び出しを行うことです。エラーが発生したかどうかを確認し、リクエストが完了するのを待って、最終的に受信したデータを処理して返すことができるようにしたい. どうすればいいですか?

だから私は基本的にこのような JSON を持っていて、/directories から始めます。すべてのファイルを取得し、それらを関数から 1 つの大きな JSON として返したいと考えています。

/ディレクトリ

["directoryA", "directoryB"]

/ディレクトリ/ディレクトリA

["subDirectory1", "subDirectory2"]

/ディレクトリ/ディレクトリB

["subDirectory4"]

/ディレクトリ/サブディレクトリ1

["fileA", "fileB"]

/ディレクトリ/サブディレクトリ2

["fileC"]

/ファイル/ファイルA

{"some content"}

/ファイル/ファイルB

{"Hello world"}

/ファイル/ファイルC

{"nickname": "Clown", "id": 9247234}

...

これに関する現在の私のコード(申し訳ありませんが、元のものはCoffeeScriptであり、何を取得し、最終的にそれらをどのようにソートするかを決定するのに役立つ他の多くのことを行います):

function getFiles(settings){
  $.ajax("/directories", settings, function(directories) {
    data.forEach(function (directory) {
      $ajax("/directory/" + directory, settings, function(subdirectory) {
        // and so on, in the innermost processing the file contents,
        // but unable to return them.
      });
    });
  });
}
4

1 に答える 1

0

jQuery Deferreds または Promises を使用して一連のリクエストを作成し、jQuery's $.when.

各ディレクトリとファイルに対して一連のラウンドトリップを行うと、時間がかかる場合があります。ディレクトリとファイルを取得することや、サーバーに大きなデータのチャンクを取得ls -Rせること( .

于 2012-09-01T18:11:46.847 に答える