HTML sayfasındaki DOM nesnelerine döngüsel başvurular bellek sızıntısına neden oluyor (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)

Makale çevirileri Makale çevirileri
Makale numarası: 830555 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Döngüsel başvurular için <a1>Nesneler</a1>'de Microsoft ınternet Explorer belge nesne modeli (DOM) içeren Microsoft JScript koddan kullanan bir HTML sayfasını yenilediğinizde, bellek sızıntısı oluşuyor.

Neden

DOM nesnelerine olmayan JScript nesneleri olduğundan, bu bellek sızıntısı oluşur. DOM nesnelerine JScript işareti ve silme çöp toplama düzeninde değildir. Tarayıcı, sayfa aşağı tamamen çıkarır kadar bu nedenle, Döngüsel başvuruyu DOM nesnelerine JScript işleyicileri arasındaki bozuk olur. Tarayıcıyı yeni bir Web sayfası veya tarayıcı penceresi kapatıldığında açıldığında, bu bellek sızıntısı sona erdirir.

Çözüm

Bu sorunu gidermek için <a0></a0>, JScript kodunuzun ınternet Explorer DOM nesnelerine döngüsel başvurular kaçının. Bu makalenin "Daha fazla bilgi" bölümünde bulunan örnek kod, bu soruna geçici bir çözüm bulmak için <a0></a0>, aşağıdaki değişiklik:
function hookup(element)
{
    element.attachEvent( "onmouseover", mouse);
}
function mouse () 
{
}
bu değişiklik ile Fare işlevi, döngüsel başvuru müşteri adayları bir kapanış nesnesi değil.

Durum

Microsoft bu durumun, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Not Defteri'nde aşağıdaki kodu yapıştırın ve dosyayı test.htm kaydedin:
    <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>
    Bu kodu, (Fare işlevi) işleyicisi attacher (hookup işlevi) içinde yer alan. Bu düzenleme, işleyici (Bu düzenleme "Kapanışın" olarak adlandırılmıştır) arayanın kapsamı üzerinde kapalı olduğunu gösterir. Işleyicinin değişken öğesine başvuru korur. Bu durumda, değişken div HTML öğesi, menüKIMLIĞI parametresi öğedir. Ancak, işleyiciye div öğesini gösterir. Bu başvuru bir döngüsel başvurudur.
  2. Test.htm ınternet Explorer'ı açın.

    Bellek kullanımı, Windows Görev Yöneticisi'nde her sayfanın kendisini yeniler artırmanın devam dikkat edin.

Referanslar

ınternet Explorer sızıntısı desenleri hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/Bb250448.aspx

Özellikler

Makale numarası: 830555 - Last Review: 2 Kasım 2007 Cuma - Gözden geçirme: 3.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer (Programming) 6.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 5.01
Anahtar Kelimeler: 
kbmt kbfix kbbug KB830555 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:830555
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

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