2012-03-26 6 views
1

this websiteによると、JavaScriptでremoveChild()を呼び出すと、擬似リークと呼ばれるInternet Explorer固有のリークが発生します。deleteCellは疑似リークを引き起こしますか?

Internet Explorerは、ページを使用してアイテムをメモリに保存することがあります。これらの擬似リークは、ユーザーがページを離れると解放されますが、一部のWebページは長時間開いている可能性があります。疑似リークを避けるために、removeChildを使用して要素を削除しないでください。代わりに、親のinnerHTMLを ""に設定してください

deleteCell()は、removeChild()と同じ方法で疑似リークを引き起こしますか?

編集:IE8でこのエラーを再現できました。信じられないかもしれませんが、MicrosoftはIE7でこの問題を解決したと主張しています。

+0

このdeleteCell機能は、/答えることは不可能んが何であるかを知らず。これは標準のJS関数ではありません。 –

+0

@MarcB [行要素](https://developer.mozilla.org/en/DOM/HTMLTableRowElement)で、 'insertCell'、' insertRow'と同じカテゴリに定義されています。 –

+0

@Rob W:明らかに私ですgoogle-fuは今日私に失敗しました...私は月曜日に非難します。 –

答えて

2

IEのソースコードを見て確認できるという利点はありませんが、ChromeがどのようにdeleteCellを実装しているかのように内部でremoveChildを使用するとIEの疑似リークを引き起こす可能性があります。 IEの古いバージョンがこの問題を抱えていたことは知っていますが、現在のバージョンであればわかりません。

クロム源から:

void HTMLTableRowElement::deleteCell(int index, ExceptionCode& ec) 
{ 
     ... 
     HTMLElement::removeChild(cell.get(), ec); 
} 
+0

deleteCell()内のremoveChild()を呼び出すと、十分な証拠のように思えます。一部のブラウザの内部で呼び出されている限り、おそらくそれについて心配する必要があります。 – Holtorf

関連する問題