6

私はシングルページアプリケーションを書いています。ページが最初に提供されるとき、ページに挿入しているjson文字列を含む多くのDOM要素が含まれています。

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

それらをDOMから削除し、そのサイズを小さくすると、パフォーマンス上の利点がありますか?この側面に関する決定的なデータは見つかりませんでした。参考までに、これらの要素のサイズは約500Kです。

あなたの提案をありがとう。

4

2 に答える 2

4

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

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

セレクターはdomをトラバースするため、非効率的なセレクターを使用すると、パフォーマンスが低下しますが、可能な限りクラスや属性ではなくIDで要素を選択すると、ページから優れたパフォーマンスを引き出すことができます。 、これらの無関係なマークアップアイテムを削除したかどうかに関係なく。

ページが最初に提供されるとき、ページに挿入しているjson文字列を含む多くのDOM要素が含まれています。...参考までに、これらの要素のサイズは約500Kです。

ページの読み込みに関しては、すべてのデータを転送する必要があるため、パフォーマンスがすでに低下しています。jsonのみを転送する方法を見つけることができれば、それは役に立ちます。ただし、事後に削除しても、この特定の問題は解決されません。

于 2012-07-10T22:35:24.477 に答える
1

DOMからJSONをプルするかどうかに関係なく、JSONオブジェクトを含めるために次の手法を検討できます。

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

ブラウザはこれらのスクリプトの内容を完全に無視します(もちろん、JSONシリアライザーが何らかの形で処理したいと思うような埋め込み文字列を除き</script>ます)。したがって、アンパサンドが埋め込まれた問題に遭遇するリスクはありません。と物事。これはおそらく、それ自体がパフォーマンスの向上です。ブラウザは、<script>実際のコンテンツであると考えるものを調べるよりも、ブロックの終わりを探すほうが簡単です。を使用してコンテンツを逐語的に取得できます.innerHTML

于 2012-07-11T00:19:33.373 に答える