2009-03-14 11 views
1

AJAXを使用して、ユーザーがナビゲートしている新しいページのHTMLを要求する段階的に構築された単一ページ(JavaScriptが有効な場合) "ブログ"を作成しています。DOMメモリとCPU管理

ユーザーは、彼らが「オーバーフロー:隠された;」:小さなウィンドウでDOMに次々と追加される新しいページに移動するAJAX呼び出しが成功を返すとdiv要素がなる

<div id="foo" style="width:200px; height:100px;"> 
    <div id="bar" style="width:999999px"> 
    </div> 
</div> 

#barに追加されます。

#foo幅の外に隠れたページがたくさんある場合、ブラウザにどのような影響がありますか?

DOMからdivを削除する必要がありますか?その後、ユーザーが再度ナビゲートすることを選択した場合、新しいAJAXリクエストを作成する必要があります。 :(

おかげ

ウィレム

答えて

2

JavaScriptがC#であれ、GCがあなたに何をしても、自動管理の愚かな約束を忘れて、忘れてしまいます。明示的にクリーンアップし、よく眠る。

非常に単純な理由:ほとんどの単純化されたシナリオ(ブラウザのJavaScriptとC#/ javaの両方のケース)から移動すると、リークとリークがかなり悪くなります。

+0

GCを定義してください。初心者の開発者として私はあなたが閉鎖によって何を意味するかを理解するのにも苦労しています。ありがとう – Willem

+0

GC、ガベージコレクタ、ブラウザの一部、ランタイム、時折OS仮想メモリマネージャー。クロージャを理解するために、機能スタイルとラムダといくつかのデリゲートの使用法を習得することが重要です。 http://en.wikipedia.org/wiki/Closure_(computer_science).明示してクリーンアップして、それは支払う。 –

+0

".Be"部分を取り除く(stackoverflow上のマークアップインタプリタに古典的な問題がある)JS、C#、Javaのいずれの言語でも特定のクロージャの使い方をGoogleに伝えるだけ。 –

0

現代のブラウザのレイアウトエンジンが隠されている要素を処理しないために十分一般的にスマートなので、それは多くのCPUパワーになりません。しかし、持つ多数のノードを追加します非常に複雑なオブジェクトグラフは、一部のブラウザでは高価になる可能性があるので、注意が必要です。レイアウトされていなくても、DOMの一部としてまだ存在し、メモリ使用量はおそらく