スピナーを表示/非表示にするためにajaxStart()とajaxStop()をリッスンしており、サーバーの作成中にJSでいくつかの模擬AJAXを実行しています。setTimeout()を使用してモックデータを生成する関数を呼び出すだけです。今のところ、スピナーでhide()とshow()を手動で呼び出していますが、「リクエスト」を開始および停止するときにJQueryに通知し、イベントをそのように処理させたいと思います。したがって、実際のajaxリクエストがバックグラウンドで実行されているときに、誤ってスピナーをhide()することはありません。
これは簡単にできますか?
編集:これは私が決めたコードです、トリックはJQuery.active
カウントを維持することです:
function fakeAJAX(f) {
if(jQuery.active++ === 0 ) {
jQuery.event.trigger("ajaxStart");
}
setTimeout(function () {
f();
if(!(--jQuery.active)) {
jQuery.event.trigger("ajaxStop");
}
}, Math.round(Math.random() * 3000 + 250));
}