1

私は約600行のまともなサイズのデータ​​グリッド(基本的にインタラクティブなテーブル)を持っています。

KO をこのグリッドにバインドするには、実際にはかなりの時間がかかることに気付きました。データバインド中。古いブラウザでは状況はさらに悪く、プロセッサはほぼ 1 分間ピークに達します。

パフォーマンス ブロックの最大のチャンクは、データバインドを実行する行から来ているようです。注: これは最初のデータバインドであるため、大規模な更新を処理するための応答の多くは適用できないようです。

また、マッピング プラグインを使用して、json オブジェクトをその場でビューモデルに変換しました。ただし、マッピング自体を実行する行は、データバインドする行に比べてそれほど時間がかからないように見えました。

残念ながら、この要件により、ページングは​​問題外です。より大きなビュー モデルと KO を最適化するための一般的なヒントや指針はありますか?

4

2 に答える 2

1

同様の問題があり、Knockout Google グループに投稿しました。Michael Best は、いくつかのカスタム バインディングを試すことを勧めました。

あなたは編集を行っているので、彼のノックアウト テーブル バインディングは機能しません。ただし、ノックアウト リピートバインディングを試すこともできます。これは、Knockout のネイティブ foreach よりも高速であると考えられています (ただし、HTML の複雑さが増すという犠牲を払っています)。最後のオプションは、グリッドを一度に構築する独自のバインディングを作成することです。理論的には、メモリ内にグリッド全体を構築して完全に DOM に詰め込む方が、DOM を個別に変更するよりも高速です。

KoGrid はおそらくあなたが望むものではありませんが、ソースにはおそらくいくつかのヒントやヒントが埋め込まれています。

于 2013-07-10T03:20:20.107 に答える