2

ラリーグリッドを作成し、アプリのアイテムとしてリストされているコンテナーの 1 つに配置します。次に、アプリは、他のグリッドを作成してページに追加するために最大 3 分かかる可能性がある for ループを循環します。

  1. アプリは、すべてのグリッドが作成されてページに追加されるまで待ってから、グリッドを表示します。コンポーネントに追加されたら、最初のものを表示するにはどうすればよいですか?

  2. たくさんのものを追加する最速の方法の経験則はありますか? マイナー サマリー データ用に 100 以上のグリッドを追加しています。それぞれに小さな配列が与えられますが、ストアを作成してからグリッドを作成します。

  3. 100 以上の小さなグリッドを循環している間、実行を終了するのを止めることはできません。属性ボックスの変更によってすべてが開始されるため、ユーザーがドロップダウンを変更しても、しばらくの間は何も起こりません。また、ビルド中に Chrome タブを閉じることさえできません。

4

1 に答える 1

1

レンダリング中に Ext レイアウトを一時停止すると、スピードアップに役立つ場合があります。

Ext.suspendLayouts();
for (var i = 0; i < 100; i++) {
    addGrids...
}
Ext.resumeLayouts(true);

レイアウトの一時停止がまだ遅すぎる場合は、グリッドを非同期で追加してみてください。これにより実際にレンダリングが高速化されるわけではありませんが、UI の応答性が向上する可能性があります。suspendLayouts トリックを非同期レンダリングと組み合わせてもうまくいきません。どちらかを選択する必要があります。

for (var i = 0; i < 100; i++) {
    var addGrid = function() {
        addGrid...
    }

    Ext.Function.defer(addGrid, i * 200);
}

100 グリッドはドムの多くです。どの方法を使用しても遅くなる可能性があります。IE をターゲットにしている場合は注意してください。IE の 1 ページに 100 個のグリッドがあると、使用できなくなると思います。

于 2013-01-26T16:17:29.637 に答える