أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

المراجع المعادة لكائنات DOM في صفحة HTML حدوث تسرب للذاكرة

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية830555
إخلاء مسؤولية من محتوى قديم في قاعدة المعارف
عن تقديم الدعم التقني لهاو لذلك تظهر هذه المقالة كما هي و لن يتم تحديثها Microsoft تمت كتابة هذه المقالة بخصوص منتجات توقفت
الأعراض
حدوث تسرب للذاكرة عند تحديث صفحة HTML التي تستخدم تعليمات Microsoft JScript البرمجية يحتوي على مراجع دائرية، إلى كائنات في Microsoft Internet Explorer طراز كائن المستند (DOM).
السبب
يحدث هذا حدوث تسرب للذاكرة بسبب وجود كائن DOM كائنات غير JScript. كائنات DOM غير موجودة في نظام مجموعة البيانات المهملة علامة و sweep في JScript. لذلك، المرجع الدائري بين كائنات DOM ومعالجات JScript لن المقطوعة حتى المستعرض بشكل كامل tears أسفل الصفحة. سيتم إنهاء هذا حدوث تسرب للذاكرة عند فتح المستعرض صفحة ويب جديدة أو عند إغلاق إطار المستعرض.
الحل
لحل هذه المشكلة، تجنب المراجع المعادة لكائنات DOM مستكشف إنترنت في التعليمات البرمجية Jscript. كمحاولة للتغلب على هذه المشكلة في نموذج التعليمة البرمجية المضمنة في قسم "مزيد من المعلومات" من هذه المقالة إجراء تغيير التالية:
function hookup(element){    element.attachEvent( "onmouseover", mouse);}function mouse () {}
مع هذا التغيير الدالة الماوس غير كائن الإغلاق يقود إلى مرجع معاد.
تصريح
أقرت Microsoft أن هذا خطأ في منتجات 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>
    في هذه التعليمة البرمجية يتم تداخل المعالج (دالة الماوس) داخل attacher (دالة hookup). ويعني هذا الترتيب إغلاق المعالج عبر نطاق المتصل (يسمى هذا الترتيب "الإغلاق"). يحتفظ المعالج مرجع إلى عنصر متغير. في هذه الحالة، العنصر متغير هو عنصر div HTML باستخدام المعلمة ID التي تم تعيينها إلى القائمة. ولكن عنصر div يشير إلى المعالج. يكون هذا المرجع مرجع دائري.
  2. افتح Test.htm في Internet Explorer.

    لاحظ أن استخدام الذاكرة في "إدارة مهام Windows يستمر في زيادة كل مرة يتم فيها تحديث الصفحة نفسها.
مراجع
لمزيد من المعلومات حول النقوش تسرب Internet Explorer قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 830555 - آخر مراجعة: 11/02/2007 06:47:16 - المراجعة: 3.4

Microsoft Internet Explorer (Programming) 6.0, Microsoft Internet Explorer 5.5, Microsoft Internet Explorer 5.01

  • kbmt kbfix kbbug KB830555 KbMtar
تعليقات
simov.clickstreamTracker.init(); =1&t=">=">