انتقل إلى محتوى الدرس

High Speed Batching DocumentFragment التجميع عبر createDocumentFragment

أتقن دوال الإنشاء المتقدمة في كائن المستند لتجميع العناصر بسرعة عبر createDocumentFragment وبناء العقد النصية والتعليقات وإطلاق الأحداث المخصصة CustomEvent.
3 صفوف تعليمية
جافا سكريبت
3,159 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يؤدي إلحاق مئات العناصر واحداً تلو الآخر داخل قائمة حية إلى استنزاف المعالج بإعادة حساب التخطيط البصري مع كل عنصر. تحل الدالة document.createDocumentFragment() هذه المشكلة بإنشاء حاوية خفيفة بلا وسم خارجي (nodeType === 11) تجمع العناصر في الذاكرة.

وعند استدعاء list.appendChild(frag) تنتقل العناصر الأبناء فقط دفعةً واحدة إلى القائمة برسمة متصفح واحدة، وتفرغ الحاوية المؤقتة تلقائياً كما يوضح الجدول المقارن:

دالة الإنشاءقيمة nodeTypeهل تترك غلافاً بالشجرة؟الاستخدام العملي الأنسب
document.createElement(tag)1نعم (وسم فعلي)بناء عناصر الواجهة القياسية
document.createTextNode(str)3لا (عقدة نصية)إدراج نصوص آمنة بجوار الأيقونات
document.createComment(str)8لا (تعليق HTML)علامات إرشادية غير مرئية بالقوالب
document.createDocumentFragment()11لا (تفرغ فور الإلحاق)تجميع عشرات العناصر وإدراجها برسمة واحدة
الصف 2 كود برمجي
JavaScript
const frag = document.createDocumentFragment();
const items = ['DOM Tree', 'Fragment', 'Single Paint'];
for (const label of items) {
  const li = document.createElement('li');
  li.textContent = label;
  frag.appendChild(li);
}
document.getElementById('list').appendChild(frag);
الصف 3 ملاحظة هامة