私は現在、Django/Python バックエンドでかなり大規模な分析プログラムを開発しており、jQuery を使用しています。
すべての統計が " " の概念に基づいているとしましょうPerson
。概要統計を見た後、誰かが個人を開いてPerson
その統計を見たいと思うかもしれません。
現在、私は AJAX リクエストをサーバーに送り返します。Django はその人を取得し、DOM ツリー全体をレンダリングして返します。jQuery は返されたものを受け取り、<div>
それをドキュメントの DOM ツリーに、開いている他のユーザーと一緒に追加します。
したがってPerson
、すべての要素が同じ要素を持つ独自の div を持ち、それらの情報だけが含まれます。あなたが見ている現在の人はdisplay:block;
、display:none;
他の人です。より詳細な情報を取得するためにサーバーに戻る必要がある要素 (より詳細な情報を表示するためのボタンなど) は、Django のテンプレート システムでコーディングされ、getMoreInformation('myUUID');
. また、必要に応じて AJAX が適切な人物の情報を見つけて変更できるように、要素 ID で UUID を頻繁に使用していることにも注意してください。
私は最近 Knockout.js を発見しましたが、このような状況で使用する方が良いかどうか疑問に思っており、速度などに懸念があります。
Knockout.js は、個々の DOM 要素ではなく、バックエンドのデータと Javascript での表現方法 (モデルからモデル) との間の 1 対 1 の関係を提供するため、「正しいこと」のようです。関数に渡される ID。言うまでもなく、DOM ツリー内の要素の量が大幅に削減されます。
ただし、私の主な対象ユーザーは IE8 であり、Knockout.js にパフォーマンス上の問題があることを懸念しています。現在、調査対象の人々に関連する div を非表示にして表示するだけですが、Knockout.js はすべての を調べ、data-bind
Javascript を使用してそれらのコンテンツを置き換える必要があります。
このような状況で Knockout.js を使用する場合のパフォーマンス上の懸念は何ですか? それとも、問題にならないほど最小限のものでしょうか? ベンチマークを見つけるのに苦労していますが、Knockout.js に移行したときに UI が遅くなった経験をした人はいますか? (DOM 要素が少ない + Knockout.js と、「現実世界」のアプリケーションで Knockout.js を使用しない DOM 要素が多いことは、私がここで探しているもののようなものです。)