現在オフラインです。再接続するためにインターネットの接続を待っています

HTML ページの DOM オブジェクトへの循環参照、メモリ リークが発生します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:830555
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。
現象
使用する HTML ページを更新すると、メモリ リークが発生します。オブジェクトへの循環参照が含まれています Microsoft の JScript コードは、。Microsoft Internet Explorer のドキュメント オブジェクト モデル (DOM)。
原因
DOM オブジェクトが非 JScript なので、このメモリ リークが発生します。オブジェクト。DOM オブジェクトのマーク アンド スイープ ガベージ コレクション スキームをではないです。JScript。したがって、循環参照の DOM オブジェクトの間で、JScript ハンドラーは切断された、ブラウザーを完全に訂正するまで、ページします。このメモリ リークは新しい Web ページまたはブラウザ ウィンドウを閉じるときに、ブラウザーを開いたときに終了します。
解決方法
この問題を解決するには、循環参照を避けるInternet Explorer の DOM オブジェクトに Jscript コードでは。この問題を回避するにはこの「関連情報」セクションに含まれているサンプル コードは、記事には、次の変更を行います。
function hookup(element){    element.attachEvent( "onmouseover", mouse);}function mouse () {}
この変更は、 マウス 関数循環参照を発生、クロージャ オブジェクトではありません。
状況
Microsoft では、この「対象」に記載されているマイクロソフト製品のバグとして認識しています。
詳細

現象の再現手順

  1. メモ帳で、次のコードを貼り付けますして、ファイルを保存Test.htm。
    <HTML><HEAD><script language="javascript">function initpage(){window.setTimeout("window.location.reload()", 500, "javascript");}</script></HEAD><body onload="initpage()" ><div class='menu' id='menu'></div><script language='javascript'>hookup(document.getElementById('menu'));function hookup(element){element.attachEvent( "onmouseover", mouse);	function mouse () 	{	}}</script></body></HTML>
    このコードでは、(、ハンドラー マウス 関数) は、使用者の中 (入れ子になっています。 フック 関数)。この方法でハンドラーが閉じていることを意味します。(この方法は「閉鎖」と呼ばれます)、呼び出し元のスコープ。ハンドラー維持変数要素への参照。この例では、変数の要素には、 div HTML 要素には、 ID パラメーターの設定 メニュー.が、、 div ハンドラーに要素を参照します。この参照は、循環のです。参照します。
  2. Internet Explorer で Test.htm を開きます。

    確認します。Windows タスク マネージャーでのメモリ使用量を続けるたびに増加しますがページ自体が更新されます。
関連情報
Internet Explorer リーク パターンの詳細については、次のマイクロソフト開発ネットワーク (MSDN) Web サイトを参照してください。

警告: この記事は自動翻訳されています

プロパティ

文書番号:830555 - 最終更新日: 07/30/2011 10:04:00 - リビジョン: 5.0

  • kbbug kbfix kbmt KB830555 KbMtja
フィードバック
Element('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> >