私はMarkusのアドバイスを取り、2つのjQueryプラグインを作成しました.1つはリクエストをキューに入れ、もう1つはポスティング用です。
Zend Frameworkアプリケーションは要求を受け取り、JSONエンコードされてクライアントに返される汎用レスポンスオブジェクトに戻りデータを追加して、各要求を繰り返します。
var count = 0;
var requests = new Array();
// Add AJAX requests to the queue
(function($){$.fn.addAjaxRequest=function(callback, ajaxArgs, initialArgs) {
requests[count] = [callback, ajaxArgs, initialArgs];
count++;
}
})
(jQuery);
// Send the queued AJAX requests to MVC
(function($){$.fn.postAjaxRequests=function(host) {
var response = null;
var url = 'http://' + host + '/ajax/process-ajax-requests';
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
async: false,
data : ({data : requests}),
success: function(data) {
response = data;
}
});
return response;
}
})
(jQuery);
私はZend Frameworkビューヘルパーを使用して、予想されるAJAX要求の数をカウントしています。 jQueryで前に$ .GETまたは$ .POSTと呼ばれていたコードでは、各リクエストをスタック(js配列)に保持する独自のjQueryプラグインを呼び出しています。スタック内のリクエストの数がビューヘルパーで指定された数と一致すると、Zend Framework Ajaxコントローラに1回のリクエストを送信し、各リクエストを順番に解析します。問題は、これらのAJAX呼び出しの中には、データを返送する必要があることです。関連するリクエストに一致するデータを渡す最も良い方法は何ですか? – Richard
もう一度バンドルして、配列にマークしておきます。そして、プラグインは配列をソートし、応答をさらにルーティングします。あなたのプラグインは、基本的にリクエストルータのように機能します。したがって、プラグインに送信するリクエストごとにIDが取得され、大きなレスポンス配列では、IDによるサブレスポンスを見つけ出し、必要な処理を実行できます。 – markus