כיצד ליישם Lazy Loading עבור תמונות

כשאנחנו גולשים באתרים, מהירות הטעינה היא אחד הדברים החשובים ביותר לחוויית המשתמש. אחת השיטות לשפר את מהירות הטעינה היא באמצעות טכניקת Lazy Loading לתמונות. במאמר זה, נסביר בפשטות מהו Lazy Loading, איך זה עובד, ואיך ליישם את זה באתר שלכם.

מהו Lazy Loading?

Lazy Loading היא טכניקה שבה תמונות נטענות רק כשהן נכנסות לתצוגה של המשתמש. כלומר, אם יש לכם עמוד עם הרבה תמונות, רק התמונות שהמשתמש רואה מיד בטעינה הראשונית נטענות, והשאר נטענות רק כשהמשתמש גולל למטה ורואה אותן.

היתרונות של Lazy Loading

שיפור ביצועים: האתר נטען מהר יותר כי רק התמונות הגלויות נטענות בהתחלה.
חיסכון ברוחב פס: פחות נתונים מועברים, מה שעוזר גם לאתר וגם למשתמשים עם חיבור אינטרנט איטי.
חווית משתמש משופרת: האתר נראה ועובד מהר יותר, מה שמשפר את חוויית המשתמש ומפחית את שיעור הנטישה.

יישום Lazy Loading עם HTML5

הדרך הפשוטה ביותר ליישם Lazy Loading היא להשתמש במאפיין loading של תגית <img>. זה נתמך על ידי דפדפנים מודרניים רבים.

<img src="example.jpg" alt="Example Image" loading="lazy">

יישום Lazy Loading באמצעות JavaScript

אם אתם רוצים יותר שליטה או תמיכה בדפדפנים שאינם תומכים ב-loading="lazy", אפשר להשתמש ב-JavaScript. הנה דוגמה:

<!DOCTYPE html>
<html lang="he">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Lazy Loading Example</title>
    <style>
        img {
            display: block;
            margin: 20px auto;
            max-width: 100%;
            height: auto;
        }
    </style>
</head>
<body>

<img data-src="image1.jpg" alt="Image 1" class="lazy">
<img data-src="image2.jpg" alt="Image 2" class="lazy">
<img data-src="image3.jpg" alt="Image 3" class="lazy">

<script>
    document.addEventListener("DOMContentLoaded", function() {
        let lazyImages = document.querySelectorAll('.lazy');

        function lazyLoad() {
            lazyImages.forEach(image => {
                if (image.getBoundingClientRect().top < window.innerHeight && image.getBoundingClientRect().bottom > 0) {
                    image.src = image.getAttribute('data-src');
                    image.classList.remove('lazy');
                }
            });
        }

        window.addEventListener('scroll', lazyLoad);
        window.addEventListener('resize', lazyLoad);
        lazyLoad(); // Initial call
    });
</script>

</body>
</html>

שימוש בספריות צד שלישי

קיימות ספריות JavaScript רבות שיכולות להקל על יישום Lazy Loading. אחת מהן היא lazysizes. זוהי ספרייה קלה ויעילה שניתן לשלב בקלות באתר שלכם.

התקנת lazysizes

ניתן להתקין את הספרייה באמצעות npm או לכלול אותה ישירות בקובץ ה-HTML שלכם:

<script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.0/lazysizes.min.js" async></script>

שימוש ב-lazysizes

פשוט השתמשו במחלקה lazyload ובמאפיין data-src לתמונות שלכם:

<img data-src="image1.jpg" class="lazyload" alt="Image 1">
<img data-src="image2.jpg" class="lazyload" alt="Image 2">
<img data-src="image3.jpg" class="lazyload" alt="Image 3">

הספרייה תטפל בטעינת התמונות כאשר הן נכנסות לתצוגה.

השוואה בין Lazy Loading עם JavaScript לספריות צד שלישי

JavaScript מותאם אישית: פתרון זה מאפשר שליטה מלאה על התהליך, אך דורש כתיבת קוד והבנה מעמיקה יותר של JavaScript.ספריות צד שלישי כמו lazysizes: פתרון קל ומהיר ליישום, אך תלוי בקוד חיצוני שאינו בשליטתכם.

סיכום

Lazy Loading לתמונות הוא טכניקה חשובה לשיפור ביצועי האתר (תוכל גם ללמוד על אופטמזציה לאתר שלי בקורס חינמי של HTML וCSS למתחילים שהקלטתי) וחוויית המשתמש. בין אם תבחרו להשתמש במאפיין loading של HTML5, ב-JavaScript מותאם אישית או בספריות צד שלישי כמו lazysizes, תוכלו להפיק תועלת רבה מיישום טכניקה זו. נסו את השיטות השונות ובחרו בזו שמתאימה ביותר לצרכים של האתר שלכם.

Scroll to Top