"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تحسين أداء موقع الويب باستخدام Intersection Observer

تحسين أداء موقع الويب باستخدام Intersection Observer

تم النشر بتاريخ 2024-07-30
تصفح:424

Enhancing Website Performance with Intersection Observer

مقدمة

في سعيهم للحصول على تجربة ويب أسرع وأكثر كفاءة، يبحث المطورون باستمرار عن طرق جديدة لتحسين الأداء. إحدى الأدوات القوية في ترسانة مطوري الويب هي Intersection Observer API. تسمح لك واجهة برمجة التطبيقات (API) هذه بمراقبة التغييرات في رؤية العناصر المستهدفة، مما يتيح إستراتيجيات متقدمة مثل التحميل البطيء وتحميل المحتوى المؤجل. في هذه المدونة، سنستكشف كيفية استخدام Intersection Observer API لتحسين أداء موقع الويب الخاص بك.

ما هو مراقب التقاطع؟

توفر Intersection Observer API طريقة لمراقبة التغييرات بشكل غير متزامن في تقاطع العنصر المستهدف مع عنصر سلف أو مع إطار عرض مستند المستوى الأعلى. يمكن أن يكون هذا مفيدًا بشكل خاص للصور أو المحتويات الأخرى التي يتم تحميلها ببطء أثناء قيام المستخدمين بالتمرير لأسفل الصفحة.

حالات الاستخدام الرئيسية لتحسين الأداء

  1. تحميل الصور وإطارات iframe بشكل بطيء: قم بتحميل الصور وإطارات iframe فقط عندما تكون على وشك الدخول إلى منفذ العرض، مما يقلل وقت التحميل الأولي.
  2. تأجيل تحميل المحتوى الموجود خارج الشاشة: تأجيل تحميل المحتوى مثل الإعلانات أو مقاطع الفيديو أو النصوص البرمجية الثقيلة حتى يتم عرضها.
  3. التمرير اللانهائي: تحميل المزيد من المحتوى أثناء قيام المستخدم بالتمرير إلى أسفل الصفحة.
  4. تتبع التحليلات: تتبع وقت ظهور العناصر لتحليلات تفاعل المستخدم.

الاستخدام الأساسي

دعونا نتعمق في التنفيذ الأساسي لـ Intersection Observer API.

  1. إنشاء مراقب تقاطع

أولاً، قم بإنشاء مثيل لـ IntersectionObserver:

let observer = new IntersectionObserver((entries, observer) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      // Perform actions when the element is visible
      entry.target.src = entry.target.dataset.src;
      observer.unobserve(entry.target); // Stop observing after loading
    }
  });
}, {
  root: null, // relative to document viewport
  rootMargin: '0px', // margin around root
  threshold: 0.1 // visible amount of item shown in relation to root
});
  1. العناصر المستهدفة للملاحظة

اختر العناصر التي تريد مراقبتها وابدأ بمراقبتها:

document.querySelectorAll('img[data-src]').forEach(img => {
  observer.observe(img);
});
  1. بنية HTML للتحميل البطيء

تأكد من أن بنية HTML الخاصة بك تدعم التحميل البطيء باستخدام سمات البيانات:

Lazy Loaded Image

التكوينات المتقدمة

لمزيد من التحكم، يمكنك ضبط خيارات هامش الجذر والعتبة:

  1. الهامش الجذري: قم بتحميل المحتوى مسبقًا قليلاً قبل أن يدخل إلى إطار العرض.
rootMargin: '100px' // preload 100px before entering viewport
  1. العتبة: تحديد مقدار العنصر الذي يجب أن يكون مرئيًا قبل تشغيل رد الاتصال.
threshold: [0.25, 0.5, 0.75, 1] // trigger at 25%, 50%, 75%, and 100% visibility

مثال عملي: التحميل البطيء للصور

إليك مثال كامل للتحميل البطيء للصور:

  1. كود جافا سكريبت
document.addEventListener("DOMContentLoaded", function() {
  let lazyImages = document.querySelectorAll("img.lazy");

  let imageObserver = new IntersectionObserver((entries, observer) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        let img = entry.target;
        img.src = img.dataset.src;
        img.classList.remove("lazy");
        observer.unobserve(img);
      }
    });
  });

  lazyImages.forEach(image => {
    imageObserver.observe(image);
  });
});
  1. هيكل HTML
Lazy Loaded Image

فوائد

  1. تقليل وقت التحميل الأولي: عن طريق تحميل الصور والمحتوى الموجود في إطار العرض أو بالقرب منه فقط، يتم تقليل وقت التحميل الأولي.
  2. تحسين أداء التمرير: يمكن أن يؤدي تأجيل تحميل المحتوى الموجود خارج الشاشة إلى تمرير أكثر سلاسة.
  3. تجربة مستخدم أفضل: يقوم المستخدمون بتنزيل المحتوى الذي هم على وشك مشاهدته فقط، مما يؤدي إلى تجربة أكثر استجابة.

خاتمة

من خلال تنفيذ Intersection Observer API، يمكنك تحسين الأداء وتجربة المستخدم لموقعك على الويب بشكل كبير. سواء كنت تقوم بتحميل الصور كسولًا، أو تقوم بتأجيل تحميل البرامج النصية الثقيلة، أو تنفيذ التمرير اللانهائي، فإن واجهة برمجة التطبيقات هذه توفر طريقة قوية وفعالة لإدارة رؤية المحتوى. ابدأ باستخدام Intersection Observer اليوم وشاهد الفرق في أداء موقع الويب الخاص بك!

بيان الافراج تم نشر هذه المقالة على: https://dev.to/koolkamalkishor/enhancing-website-performance-with-intersection-observer-f89?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3