DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 830555 - Última revisão: sexta-feira, 2 de novembro de 2007 - Revisão: 3.4

 

Nesta página

Sintomas

Um vazamento de memória ocorre quando você atualizar uma página HTML que usa código Microsoft JScript que contém referências circulares para objetos do Microsoft Internet Explorer DOM Document Object Model ().

Causa

Esse vazamento de memória ocorre porque objetos DOM são objetos não JScript. Objetos DOM não estão no esquema de coleção de lixo de marca e varredura de JScript. Portanto, a referência circular entre os objetos DOM e manipuladores de JScript não será interrompida até que o navegador tears completamente a página para baixo. Esse vazamento de memória terminará quando o navegador abre uma nova página da Web ou quando a janela do navegador é fechada.

Resolução

Para resolver esse problema, evite circulares referências a objetos DOM do Internet Explorer em seu código JScript. Para contornar esse problema no código de exemplo incluído na seção "Mais informações" deste artigo, faça a seguinte alteração:
function hookup(element)
{
    element.attachEvent( "onmouseover", mouse);
}
function mouse () 
{
}
com essa alteração, a função de mouse não é um objeto de fechamento que leva a uma referência circular.

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Etapas para reproduzir o comportamento

  1. Cole o seguinte código no bloco de notas e, em seguida, salve o arquivo 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>
    nesse código, o manipulador (a função de mouse ) está aninhado em attacher (a função de conexão ). Essa organização significa que o manipulador é fechado sobre o escopo do chamador (essa organização é chamada "fechamento"). O manipulador mantém uma referência ao elemento variável. Nesse caso, o elemento variável é o elemento div HTML com o parâmetro de identificação que é definido como menu . Mas o elemento div se refere ao manipulador. Esta referência é uma referência circular.
  2. Abra Test.htm no Internet Explorer.

    Observe que o uso de memória no Gerenciador de tarefas do Windows continua a aumentar sempre que atualiza a página propriamente dito.

Referências

Para obter mais informações sobre padrões de vazamento do Internet Explorer, visite o seguinte site da Web 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store