Cyklické odkazy na objekty DOM na stránce HTML mohou způsobovat nevracení paměti (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)

Překlady článku Překlady článku
ID článku: 830555 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Při aktualizaci stránky HTML, která používá kód Microsoft JScript obsahujícího cyklické odkazy na objekty DOM v Microsoft Internet Explorer Document Object Model (model) dochází k nevracení paměti.

Příčina

Toto nevracení paměti dochází, protože objekty DOM jsou objekty JScript. Objekty DOM nejsou nesmyslné značku a úpravy schématu kolekce JScript. Cyklický odkaz mezi objekty DOM a obslužné rutiny JScript nebude tedy přerušené dokud prohlížeč tears zcela dolů na stránce. Toto nevracení paměti bude ukončena, když prohlížeč otevře novou webovou stránku nebo zavření okna prohlížeče.

Řešení

Tento problém vyřešíte vyhnout cyklické odkazy na objekty Internet Explorer DOM v kódu JScript. Chcete-li vyřešit tento problém je zahrnuta v tomto článku v části "Další informace" Ukázkový kód, proveďte následující změnu:
function hookup(element)
{
    element.attachEvent( "onmouseover", mouse);
}
function mouse () 
{
}
se tato změna funkce myši není uzavření objektu, který vede k cyklický odkaz.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Kroky pro reprodukci tohoto chování

  1. Vložte následující kód v programu Poznámkový blok a uložte soubor jako 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>
    v kódu, popisovač (funkce myši) vnořena v attacher (přípojku funkce). Toto uspořádání znamená uzavření obslužnou rutinu přes oboru volajícího (Toto uspořádání je pojmenované "uzavření"). Obslužnou rutinu udržuje odkaz na proměnnou element. Prvek proměnné v tomto případě je prvek div HTML s parametr ID je nastavena na nabídce. Ale prvku div odkazuje obslužnou rutinu. Tento odkaz je cyklický odkaz.
  2. Otevřít test.htm v aplikaci Internet Explorer.

    Všimněte si, že využití paměti ve Správci pokračuje zvýšit při každém sama aktualizuje stránku.

Odkazy

Další informace o nevracení vzorky Internet Explorer naleznete na webu Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/Bb250448.aspx

Vlastnosti

ID článku: 830555 - Poslední aktualizace: 2. listopadu 2007 - Revize: 3.4
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Internet Explorer (Programming) 6.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 5.01
Klíčová slova: 
kbmt kbfix kbbug KB830555 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:830555
Právní omezení pro obsah znalostní báze týkající se produktů, jejichž podpora byla ukončena
Tento článek byl napsán o produktech, pro které společnost Microsoft již neposkytuje nadále podporu. Článek je tedy nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com