1

ページの要素の幅/高さを調整する機能があります。この関数は、カスタムdimensionchangeイベントによってトリガーされます。

私は

$(window).trigger("dimensionchange") 

AJAX を介してコンテンツをロードしたり、ページを変更したりするたびに (私は を使用していますjquery mobile)。

私の問題はいくつかのページにあり、一連の Ajax リクエストがトリガーされます (ajax が条件と初期結果をロードする検索ページなど) "dimensionchange"dimensionchangeこれはページの速度を大幅に低下させますが、最後のページをキャプチャしてからレイアウトを更新するだけでよいため、必要ありません。

質問:
イベントがランダムな回数発生したときに、イベントの最後の発生をキャプチャする方法はありますか? 私が考えることができる唯一のことは、すべてのイベント発生にタイムアウトを設定し、それ以上のイベントが 500 ミリ秒以内に発生しない場合は、ページの更新をトリガーすることです。しかし、これはかなり厄介なように思えるので、もっと良い方法があるかどうか知りたいですか?

手伝ってくれてありがとう!

4

1 に答える 1

2

jQueryのグローバルAjaxイベントハンドラー ajaxStart()ajaxStop()メソッドを使用したいとします。

AjaxStopとAjaxStartの使用に関する別の最近の投稿があります。あなたが知る必要がある主なことは、最初のajaxクエリが開始したときと最後のクエリが終了したときに通知を受けることができるということです。次のようなフラグを設定できます。

$(document).ready(function() {
    var ajaxBusy = false;

    $(document).ajaxStart( function() { 
        ajaxBusy = true; 
    }).ajaxStop( function() {
        ajaxBusy = false;
    });
});
于 2012-11-04T16:21:51.887 に答える