في سعيهم للحصول على تجربة ويب أسرع وأكثر كفاءة، يبحث المطورون باستمرار عن طرق جديدة لتحسين الأداء. إحدى الأدوات القوية في ترسانة مطوري الويب هي Intersection Observer API. تسمح لك واجهة برمجة التطبيقات (API) هذه بمراقبة التغييرات في رؤية العناصر المستهدفة، مما يتيح إستراتيجيات متقدمة مثل التحميل البطيء وتحميل المحتوى المؤجل. في هذه المدونة، سنستكشف كيفية استخدام Intersection Observer API لتحسين أداء موقع الويب الخاص بك.
توفر Intersection Observer API طريقة لمراقبة التغييرات بشكل غير متزامن في تقاطع العنصر المستهدف مع عنصر سلف أو مع إطار عرض مستند المستوى الأعلى. يمكن أن يكون هذا مفيدًا بشكل خاص للصور أو المحتويات الأخرى التي يتم تحميلها ببطء أثناء قيام المستخدمين بالتمرير لأسفل الصفحة.
دعونا نتعمق في التنفيذ الأساسي لـ Intersection Observer API.
أولاً، قم بإنشاء مثيل لـ 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 });
اختر العناصر التي تريد مراقبتها وابدأ بمراقبتها:
document.querySelectorAll('img[data-src]').forEach(img => { observer.observe(img); });
تأكد من أن بنية HTML الخاصة بك تدعم التحميل البطيء باستخدام سمات البيانات:
لمزيد من التحكم، يمكنك ضبط خيارات هامش الجذر والعتبة:
rootMargin: '100px' // preload 100px before entering viewport
threshold: [0.25, 0.5, 0.75, 1] // trigger at 25%, 50%, 75%, and 100% visibility
إليك مثال كامل للتحميل البطيء للصور:
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); }); });
من خلال تنفيذ Intersection Observer API، يمكنك تحسين الأداء وتجربة المستخدم لموقعك على الويب بشكل كبير. سواء كنت تقوم بتحميل الصور كسولًا، أو تقوم بتأجيل تحميل البرامج النصية الثقيلة، أو تنفيذ التمرير اللانهائي، فإن واجهة برمجة التطبيقات هذه توفر طريقة قوية وفعالة لإدارة رؤية المحتوى. ابدأ باستخدام Intersection Observer اليوم وشاهد الفرق في أداء موقع الويب الخاص بك!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3