これはあなたが意味するものなのかどうかは分かりませんが、とにかくそれをある点として必要と思っていました。
これは、プロパティがpriority
のオブジェクトを受け入れるためにjQueryのajax関数をパッチします。優先順位セットがない場合、その優先順位は1(最高優先順位0)になります。優先順位がある場合は、2つのうちの1つを行います。優先順位が5のようなものであれば、それは前の優先順位(この場合は4)のajax呼び出しが呼び出されたかどうかをチェックします。そうでなければ、その優先順位(この場合は5)を持つajax呼び出しの配列に追加します。以前の優先度が呼び出されている場合、その要求は正常に呼び出されます。優先度付きで要求が呼び出されると、次に優先度の高い送信要求が呼び出されます。
つまり、プライオリティがない場合は、プライオリティ0を待機し、プライオリティがある場合は、そのプライオリティが呼び出されるのを待ちます。あなたはすぐに送信すべき優先度の高い通話をしたい場合は、コメント行をコメントアウト私はget
とpost
ためdefault action?
(function($){
var oldAjax=$.ajax;
var outgoing=[];
var sent=[];
$.ajax=function(url, settings) {
var pr = (typeof url==='object'?url:settings).priority;
pr = pr===undefined ? 1 : pr; // default action?
if(pr!==undefined){
if(pr==0 || sent[pr-1]!==undefined){
oldAjax(url,settings);
sent[pr]=true;
if(outgoing[pr]){
var rq=outgoing[pr].splice(0,1)[0];
$.ajax(rq[0],rq[1]);
}
if(outgoing[pr+1]){
var rq=outgoing[pr+1].splice(0,1)[0];
$.ajax(rq[0],rq[1]);
}
}
else{
if(outgoing[pr]!==undefined){
outgoing[pr].push([url,settings]);
}
else{
outgoing[pr]=[[url,settings]];
}
}
}
else{
oldAjax(url, settings);
}
};
})(jQuery);
パッチを言って置きます。これらの余分な引数を含めるか、またはこれを自分で変更して、post
とget
の要求を優先して処理する必要があります。これは、追加の引数を除いて、jQuery 1.7からまっすぐであり、コメントを追加した2行です。例えば、ここに
jQuery.each([ "get", "post" ], function(i, method) {
jQuery[ method ] = function(url, data, callback, type, priority) {
// shift arguments if data argument was omitted
if (jQuery.isFunction(data)) {
priority = type; // my change
type = type || callback;
callback = data;
data = undefined;
}
return jQuery.ajax({
type: method,
url: url,
data: data,
success: callback,
dataType: type,
priority: priority // my change
});
};
});
Iセットアップ:http://jsfiddle.net/tk39z/
私は実際にあなたが要求を確認するためにChromeでネットワークパネルを確認することができますので、グーグルをターゲットに、いくつかのAJAX要求を作成しました。
おそらく 'onSuccess'コールバックを使用します。 – Stefan
@Stefan:リクエストにはすべての可能な結果をキャッチする必要があるので、 'complete'は大丈夫です。しかし、残念なことに同じような振る舞いで、手動で「成功」と「エラー」を設定することも確認しました。 – jAndy
http://stackoverflow.com/questions/290254/how-to-order-events-bound-with-jqueryに関連するため、AJAXイベントはコアイベントシステムを使用して実装されるため、 –