2012-07-10 8 views
6

私は1ページのアプリケーションを作成しています。ページが最初に提供されるとき、私はページに注入しているJSON文字列を含む多くのDOM要素を含んでいます。パフォーマンスのために未使用のDOM要素を削除する

ページがクライアントに読み込まれるとき、最初に起こるのは、これらのDOM要素がjsonからjavascriptオブジェクトに解析されてから再び使用されることがないことです。

DOMから削除してサイズを小さくするとパフォーマンスが向上しますか?私はこの側面に関する決定的なデータは見つけていません。 infoの場合、これらの要素のサイズは約500Kです。

ご意見ありがとうございます。

+1

あなたは、いくつかのテストケースを設定し、タイムトライアルを行うことができます。 – TheZ

+0

これらの要素は何ですか?彼らが身体にない場合、それらを削除することは本当に必要ではないかもしれません - 一度DOMが解析されると、それは解析されます。 – Dancrumb

+0

DOMに一時的なポップアップやツールチップのHTMLを保存するのと同様のケースがあります。それらをきれいにすることは有益ですか? – Halcyon

答えて

1

あなたはDOMからJSONを引くかどうか、あなたはJSONオブジェクトを含むため、この手法を検討するかもしれないの独立:

<script type='text/json' id='whatever'> 
    { "some": "json" } 
</script> 

ブラウザは完全にその埋め込まれた文字列のために当然のを除いて(これらのスクリプトの内容を無視しますJSONシリアライザがどうにか対処したいと思うようなものとして私に出てくる</script>のように見えるので、アンパサンドと物事が埋め込まれたプロンプラムにぶつかる危険はありません。これはおそらくパフォーマンス自体の勝利でしょう。ブラウザはおそらく、<script>ブロックの終わりを探しているよりも、実際のコンテンツだと思うものを見ているよりも簡単です。内容はそのまま.innerHTMLで得ることができます。

+0

おそらくセマンティクスですが、スクリプト要素にはマークアップが含まれていないので、 'innerHTML'ではなく' text'プロパティをお勧めします。 ;-) – RobG

+0

@RobG私は同意するが、私はすべてのブラウザで動作するかどうかはわからない。かもしれない。 – Pointy

4

はDOM からそれらを削除し、そのサイズを小さくすることにパフォーマンス上の利点があるだろうか?

DOMのパフォーマンスに関しては、一般的に、DOMとやりとりすることが少ないほど良いでしょう。

セレクタがdomをトラバースすることを覚えておいてください。非効率なセレクタを使用するとパフォーマンスが低下しますが、可能な限りクラスまたは属性ではなくIDで要素を選択すると、良いパフォーマンスが得られます無関係なマークアップ項目を削除したかどうかにかかわらず、ページから削除されます。ページが最初に提供しています

、それは情報については、 これらelemntsのサイズがおよそ500Kです....私はページに注入していたJSON文字列を含む 多くのDOM要素が含まれています。

ページの読み込みでは、すべてのデータを転送する必要があります。あなたがjsonだけを転送する方法を見つけることができれば、それは助けになるかもしれません。事実の後に削除すると、この特定の問題は解決されません。

+0

+1は「別に転送する」のため – Bergi

+0

あなたの洞察のためにアップしました。私はjsonの文字列を頭の中の

  • 11. DOMから要素が削除された場合、ExplicitWaitを削除します
  • 12. xml DOM:条件付きの要素を削除する
  • 13. DOMツリーから要素を削除する際のコールバック?
  • 14. DOM要素の削除と貼り付けをアニメ化する
  • 15. PHP Dom要素の内容を削除する
  • 16. JQueryのappend要素はすべてのhtml dom要素を削除します
  • 17. 要素でjQuery .data()を使用して、直接DOM操作のリークメモリで要素を削除しますか?
  • 18. javascriptのdom by id値から要素を削除します。
  • 19. DOMからバニラのjavascriptで要素を削除します
  • 20. DOMから要素が削除されたときにブートストラップのツールチップを削除する方法
  • 21. webdriver.io node.jsでDOMから要素を削除する方法
  • 22. 角度 - $ compileを使用した要素をDOMからどのように削除できますか?
  • 23. ページ要素を削除するためのJavascript検索フィルター
  • 24. DOM要素内のすべてのテキストを削除するには
  • 25. 親要素自体を削除すると、DOM要素の子要素をすべて削除する必要がありますか?
  • 26. コレクションを使用せずに配列から未使用の要素を削除する方法
  • 27. 将来の要素をDOM内にロード/削除しないようにする
  • 28. Javascript DOM要素が存在する場合は削除
  • 29. jQuery DOM要素の追加/削除:スクロールバーの問題
  • 30. JavaScriptを使用したHTML要素の削除