2012-03-30 3 views
1

私は単一のページアプリケーションを作成しています。私が考えているアプローチの1つは、すべてのテンプレートを単一ページのDOMツリーの一部として保持することです(基本的にサーバー側をコンパイルして1ページで送信する)。私は各木が非常に複雑であるとは思わない。パフォーマンスを低下させずにDOMツリーをどのくらい大きくすることができますか?

これを考えると、平凡なコンピュータ/ブラウザ上のユーザーがパフォーマンスの低下を見せる前に、ツリー上のノードの最大数はいくらですか?例えば、6個の隠れノードとして6個のビューが格納され、それぞれHTMLビットが少ない100個のサブノードがある。

ありがとうございました!

答えて

1

DOMサイズのボトルネックになる前に、帯域幅のボトルネックが発生します。

まあ、私は平凡なマシンを横たえていません。そのようなものを見つけ出す唯一の方法は、それをテストすることです。ブラウザごと、CPUごとに異なるでしょう。

あなたのアプリケーションはJavaScriptですか?

もしそうなら、usinx XHRに必要なテンプレートの読み込みのみを考慮する必要があります。これは、携帯電話のロードタイムが10年前の厄介なHPのパフォーマンスよりも重要になるためです。

私が言うことは、この10年間のどのマシンでも技術的に妥当であるべきであると聞いています。

+0

それはすべてのjavascriptです。 FlowアプリにDOMにプリロードされたテンプレートがすべてあることに気付きました(http://www.getflow.com/を参照)。パフォーマンスは素晴らしく、考慮する価値があるようです。 – crockpotveggies

+0

更新された回答。私はほとんどが同意すると思います。私はIE6/7より新しい何でも5000 +ノードで問題は見られませんでした。 – FlavorScape

+0

は妥当と思われ、テストが必要だと私は同意した。しかし、うまくいけば我々はすべて生産の前にテストします;)ありがとう! – crockpotveggies

0

単一ページのアプリケーションでは、すべてのテンプレートを一度に削除する必要はありません。たとえば、1ページに1つ以上のコンテンツdivを動的に置き換えることができます。テンプレートを使ってJSONオブジェクトを実行してHTMLを生成するようなことを考えているのであれば、テンプレートはブラウザのキャッシュに残っていても、JSON自体はメモリに残り、問題なくHTMLを再生成してDOMサイズの問題を回避できます。

+0

例やフレームワークを提案できますか?私は既にbackbone.jsを実装していますので、テンプレートは柔軟に追加できます。実行可能なようだ。 – crockpotveggies

+0

フレームワークについて質問しているのであれば、それはショッピングに関する質問であり、技術的な質問ではありません。あなたの質問の表現方法は、パフォーマンスに関する技術的なものです。 – FlavorScape

+0

あなたがリッチの答えに気付かなかったなら、私の質問に直接答えなかったので、どうしたらいいですか?彼は別のアプローチを示唆している場合はここではないが、非常に合理的です。 – crockpotveggies

関連する問題