私は動的に多くのテーブル行を作成するサイトを開発しています。今行の総量は187です。行を作成するときはすべて正常に動作しますが、IEではページを離れるときに大量の遅延があります。私はこれがページ内で何をしているのか、DOMの重い操作にどう関連するのか分かりません。私は動的コンテンツのイベントハンドラを構築するときに関数クロージャを作成しないので、この問題はメモリリークに関連するとは思われません。どんな洞察も大変ありがとうございます。IEで遅いページアンロード
答えて
要素ノードを手作業で作成するのか、innerHTMLを使用して作成していますか?私には分かりませんが、IEにはHTMLノードに関連した独自のメモリリークがあるという疑いがあります。
jQueryを使用してテーブルに187行を追加するデモページを作成しました。私は、jQuery.append()が文字列をノードのセットに変換するために巧妙な小さなトリックを使用すると信じています。 divを作成し、そのdivのinnerHTMLを文字列に設定し、そのdivのすべての子ノードを指定したノードにクローンしてから、最後にdivを削除します。
http://www.andrewpeace.com/stackoverflow/rows/rows.html
私はIE8で任意の遅れが届かない、多分それはあなたが使用しているバージョンに遅れます。もしあなたが私に知らせてくれたらそれが大好きです!たぶん私はもう少しお手伝いできる。
平和
最初にアンカータグを作成した後、そのアンカータグのクリックハンドラを関数クロージャに設定しましたが、IEのガーベッジコレクタは循環参照を認識していないので、 document.createElementを使用して以前に作成したアンカータグにinnerHTMLを設定すると、私はあなたの例が好きですが、あなたのページは単純なテキストです。ページ上に多くのイメージやそのようなものがあります。私の実装に。 – ForYourOwnGood
YUI(そしておそらく他のいくつかの人気のJavaScriptライブラリは)automatic listener cleanupを提供していたので、私は非常にIEの問題を最小限に抑えるために、この機能でYUIまたは別のライブラリを使用することをお勧めします。しかし、どのような種類のメモリリークの問題ではなく、単純な遅さが発生しているように思えます。あなたは要素の束にイベントハンドラを添付しています。 IE6は最適化されたものではないことが知られているので、すべてをきれいにするのは永遠に続くかもしれません。
apeaceも良い点があります:innerHTMLはあなたを困惑させ、DOMの奇妙さを設定します。それはJQueryがそのための修正を持っているように思えます。
event bubblingを利用して、すべてのイベントハンドラを1つに置き換えるようにしてください。
私はporneLに同意します。 1つのイベントハンドラを<テーブル>に接続し、バブリングがその魔法を働かせるようにします。ほとんどのフレームワークは、元のイベント(通常は「ターゲット」と呼ばれます)を引き起こした要素を見つける方法を提供します。
document.createElement()を使用してたくさんの要素を作成している場合は、それらをDOMフラグメントに追加できます。フラグメントをページに追加すると、それに添付されているすべての子ノードが追加されます。この操作は、各ノードを1つずつ追加するよりも高速です。 John Resig氏は、DOM文書の断片について素晴らしい記事を書いています:http://ejohn.org/blog/dom-documentfragments/
- 1. IEで非常に遅いjQuery
- 2. IEでの読み込みが遅い
- 3. AngularJs IE上で非常に遅い
- 4. jqueryとメモリリークのIEパフォーマンスが遅い
- 5. angular2とIEの使用が遅い
- 6. ページアンロード時にjQueryアニメーションを完了する
- 7. jQuery:$(document).ready()IEで遅すぎる
- 8. IEでJqueryが遅いのはなぜですか?
- 9. IE 5でのHTML 5ビデオの読み込みが遅い
- 10. IEでHTML5(Stepカルーセル)のWebサイトが遅い?
- 11. IE「スタイル計算」のパフォーマンスがAngularJSアプリで非常に遅い
- 12. ウェブサイトの負荷がIEで非常に遅い
- 13. IE WebdriverでSplinter fill機能が非常に遅い
- 14. トップの位置はサファリ/ IE遅れ
- 15. Flashコンテンツの読み込みが遅いIE gridview
- 16. FirefoxとIEは302のステータスリダイレクトリクエストに対して遅い
- 17. 私のアニメーションはIEとEdgeで遅く/バグです
- 18. ビジュアルスタジオ開発サーバーがIEで非常に遅い、クロムやFirefox上で普通
- 19. jQueryアニメーションは、IEとFirefoxの両方で非常に遅いです。
- 20. IEでWebページがFirefoxよりずっと遅いのはなぜですか?
- 21. jQueryのフィルタスクリプトがIEで遅い理由が、クロム、Firefoxで迅速、オペラ
- 22. IE 11 Selenium WebDriver入力テキストは、32ビットIEDriverServer.exeでも遅いです。
- 23. jQuery:ページアンロード時に自動的にAjaxRequestsを中止しますか?
- 24. ページアンロード中にこのコンテキストで応答は利用できません
- 25. IEでカスタムフォントの読み込みが遅くなる
- 26. moment.js IEでIEが動作しない
- 27. IEとChromeではFlashオブジェクトが遅いが、Firefoxでは使用できない(WaterFox)
- 28. 遅い状態での更新遅い
- 29. 網膜ディスプレイで遅い遅いJavafx-パフォーマンス
- 30. AJAX Control Toolkitのコンボボックス+ IEが遅すぎる
タブを閉じるとラグが発生しますか? –
はありません – ForYourOwnGood
あなたはどんなjavascriptライブラリを使用していますか? – stevedbrown