5秒間に1つのアクションを実行できるAPIと対話しています。しかし、私はすべての要求がホストで終わるようにしたい。 .ajax()を使用してAPIに対して行われたリクエストをキューに入れてスロットルする方法はありますか?jQuery AJAXリクエストのスロットリングとキューイング
多くの義務付け!
5秒間に1つのアクションを実行できるAPIと対話しています。しかし、私はすべての要求がホストで終わるようにしたい。 .ajax()を使用してAPIに対して行われたリクエストをキューに入れてスロットルする方法はありますか?jQuery AJAXリクエストのスロットリングとキューイング
多くの義務付け!
var requests = [];
setInterval(function() {
if(requests.length > 0) {
var request = requests.pop();
if(typeof request === "function") {
request();
}
}
}, 5000);
// then anywhere you need to make an ajax request
requests.push(function() {
// ajax request here
$.ajax({
url: "/foo", // some variable from outer scope
success: function(a,b,c) {
// handle it
}
});
});
私は非常にAjaxリクエストを絞るために、このプラグインをお勧めします:http://benalman.com/projects/jquery-throttle-debounce-plugin/あなたは、あなたが最良のインターネット以外の媒体他を取得したい何かを確保にしたい場合は
- それは本質的に信頼できません。とにかく、を試すには、を試してください.Javascript setTimeout
メソッドを使用して後で呼び出しを開始できます。
その他のサードパーティリソースを使用したくない場合は、delay
メソッドがjQueryによって公開されていることがわかります。あなたはこれらの線に沿って何かをすることができ
これは実証されていない意見です。インターネット上での信頼性の高いデータ伝送は日常的です。 – Konrads
jQueryのは、私はあなたがチェックアウトして読ん示唆.delay()とインターフェースを持っています。
delay()およびqueue()は、エフェクトキューを使用するアニメーションにのみ適用されます。 AJAXの遅延には役立ちません。 – thenickdude
@Lamah '.delay()'と '.queue()'はあなた自身のキュー(またはアニメーションに使われるデフォルトの 'fx'キュー)に使うことができます。任意の汎用関数を任意の名前のキューに追加できます。 – Chad
あなたは大丈夫です。ドキュメントをもっと詳しく読む方法を学ぶ必要があります。 – thenickdude
これは、すべての要求が実際に行われることを保証するものではありません。 – Gordon