callback
私のアプリケーションは複雑なデータベース アーキテクチャに支えられており、外部キーの制限が厳しく、JavaScript がハンドラーでいっぱいになっています。新しい注文の作成などの単一のアクションの場合、処理に必要なすべてのデータを送信するために 3 つの XHR が必要になる場合があります。
現在、私はこれをかなり不謹慎であるか、少なくとも少しずさんな手段で処理しています...
/** -- PSEUDO CODE -- */
myOrder.save({
success: function()
{
/** This request handled inserting the main attributes of the model
into the database, which means it is safe to fire off additional
requests */
myOrderContents.store.sync({
success: function()
{
/** Possibly fire another request here, that is dependent on
the first two requests returning successfully, or maybe
execute code that is also dependent on these requests.
*/
}
});
},
failure: function()
{
/** Handle Failure Here */
}
});
別の実行可能なアプローチは、1 つのコールバック メソッドを呼び出すすべてのリクエストの行に沿ったものであり、特定のコードのチャンクのみを実行することになると思います....
myOrder.save({callback: executeAfterRequests});
myOrderContents.store.sync({callback: executeAfterRequests});
myOtherObject.save({callback: executeAfterRequests});
executeAfterRequests: function()
{
if(requestA.isComplete() && requestB.isComplete() && requestC.isComplete())
{
/** Execute some code after all requests have been completed... */
}
}
ExtJS 開発者が同期要求に強く反対していることを考えると、基本 AJAX クラスを拡張してキューを実装するのが私の最善の策ですか? それとも、AJAX の性質を受け入れて、ネストされたsuccess
機能を使って私の楽しい方法を続けますか?
ご意見ありがとうございます。