2017-01-23 29 views
-1

3つの機能があります。複数のajaxリクエストを直列または並列に呼び出す

load_graphs('national','','container-natl-rates','container-natl-counts') 
load_graphs('division','Western','container-west-rates','container-west-counts') 
load_graphs('division','Eatern','container-east-rates','container-east-counts') 

load_graphsは、ajax呼び出しを実行してグラフを作成する関数です。

現在のところ、この呼び出しは非同期で実行されますが、個々の呼び出しを完了した後にコールバックのように実行したいと考えています。

+1

あなたはコールバックや何を書く方法を知らない意味ですか? –

+0

load_graphsを修正できますか? – ajputnam

+0

私は6つの関数を順番に呼び出すことにしているので、私の現在のアプローチは面倒です。 – user1050619

答えて

0

1つのオプションは、そうのようなコールバックを使用することです:

function load_graphs(arg1, arg2, arg3, arg4, done) { 
    // then do stuff and when that stuff is done 
    // call your callback (in this case I named it "done") 
    done(); 
} 

は、その後、あなたのメソッド呼び出し

load_graphs('national','','container-natl-rates','container-natl-counts', function() { 
    // first load_graphs() is complete 
    load_graphs('division','Western','container-west-rates','container-west-counts', function() { 
     // second load_graphs() is complete 
     load_graphs('division','Eatern','container-east-rates','container-east-counts', function() { 
      // third load_graphs() is complete 
     }) 
    }) 
}) 

asyncco

のようなサードパーティのツールを使用してのような他のより高度なオプションがありますが、

希望する場合は

0

load_graphsを変更できず、コールバックコールを挿入できない場合は、load_graphsが完了したことを示す他のリスナーを使用する必要があります。

たとえば、関数がグラフをペイントすると、追跡できる影響があるとします。おそらく<div>がその幅を変更します。おそらく、グローバル変数は現在のタイムスタンプ値に設定されています。あなたが捕まえることができる何かが起こり、それはあなたが提供していない残りのコードに依存します。

最初のload_graphsコールの後で、このインジケータが継続的に確認されるようにsetIntervalを設定し、次にload_graphsコールを順番に実行します。

関連する問題