2

ユーザーが並べ替えをクリックすると、ページを一度ロード/更新しようとしています。現在、ページはバックグラウンドで数回データを取得していますが、視覚的にはデータが完全に正しく表示されており、データの表示に問題はありません。

私のコンサーンはパフォーマンス チューニングです。データに対するバックグラウンドの get リクエストを 1 回減らしようとしています (firbug コンソールを使用して >net タブ >ALL に移動すると、クロック ソート時に Get url リクエストがいくつかあることに気付きます)。 1回または2回であることが望ましい)

以下のコードに、カウンターが1つか2つになったら切るカウンターを追加しようと考えていました。

ユーザーが並べ替えをクリックしたときの最良のアプローチは何でしょうか..

  this.view.panel.store.addListener("load", dataLoadedCallback);  

    var currentPage = this.view.panel.store.getPageFromRecordIndex(visibleStart);

container.view.panel.store.loadPage(currentPage);  


 // Call Back function for addListener
    function dataLoadedCallback(dataStore, records, success){

 //I have some code hereto handle the callback

}
4

2 に答える 2

1

これは起こるべきではありません。ストアのデータは、最初の表示と並べ替えのたびに 1 回ロードする必要があります (もちろん、リモートで並べ替える場合)。より多くの負荷を強制するソートイベントに追加のリスナーを設定しているのだろうか?

于 2012-06-04T05:57:42.437 に答える
0

@DmitryB の回答に追加するには、リスナーを追加するコードの最初の行が複数回呼び出される場合、複数のloadハンドラーがあり、関数が複数回実行されます。

ハンドラーが 1 回だけ呼び出されるようにする必要がある場合はoptions、addListener のパラメーターを確認して渡す{ single: true }

于 2012-06-04T11:55:45.760 に答える