DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 830555 - Última revisão: sexta-feira, 2 de Novembro de 2007 - Revisão: 3.4

 

Nesta página

Sintomas

Ocorre uma fuga de memória quando actualiza uma página HTML que utiliza o código Microsoft JScript que contém referências circulares a objectos no Microsoft Internet Explorer Document Object Model (DOM).

Causa

Esta fuga de memória ocorre porque os objectos DOM são objectos de JScript não. Os objectos DOM não estão no esquema de colecção de marca e Varrer lixo do JScript. Por conseguinte, a referência circular entre os objectos DOM e os processadores de JScript não sejam quebrada até que o browser tears totalmente para baixo na página. Esta fuga de memória terminará quando o browser abre uma nova página Web ou quando a janela do browser é fechada.

Resolução

Para resolver este problema, evite referências circulares a objectos DOM do Internet Explorer no código JScript. Para contornar este problema no código de exemplo incluído na secção "Mais informação" deste artigo, efectue a alteração seguinte:
function hookup(element)
{
    element.attachEvent( "onmouseover", mouse);
}
function mouse () 
{
}
com esta alteração, a função rato não é um objecto de encerramento que conduz a uma referência circular.

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos do Microsoft listados na secção "Aplica-se a".

Mais Informação

Passos para reproduzir o comportamento

  1. Cole o seguinte código no bloco de notas e, em seguida, guarde o ficheiro como 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>
    este código, a rotina de tratamento (a função rato ) está aninhada attacher (a função hookup ). Esta disposição significa que o processador está fechado sobre o âmbito do autor da chamada (esta disposição é denominada um "encerramento"). A rotina de tratamento mantém uma referência ao elemento variável. Neste caso, o elemento variável é o elemento div HTML com o parâmetro de ID que está definido para o menu . Mas o elemento div se refere a rotina de tratamento. Esta referência é uma referência circular.
  2. Abra Test.htm no Internet Explorer.

    Repare que a utilização da memória no Gestor de tarefas do Windows continua a aumentar sempre actualiza a página propriamente dita.

Referências

Para obter mais informações sobre padrões de fuga do Internet Explorer, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/Bb250448.aspx (http://msdn2.microsoft.com/en-us/library/Bb250448.aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer (Programming) 6.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 5.01
Palavras-chave: 
kbmt kbfix kbbug KB830555 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 830555  (http://support.microsoft.com/kb/830555/en-us/ )
Artigo KB retiradoExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft