Przejdź do głównej treści
Grafika przedstawia ukryty obrazek

Lazy Loading w JavaScript

Zdjecie zwiazane z Lazy Loading w JavaScript

Lazy Loading to technika optymalizacji wydajności stron internetowych, która polega na ładowaniu zasobów (np. obrazów, skryptów, komentarzy) dopiero wtedy, gdy są one potrzebne. Dzięki temu zmniejsza się początkowy czas ładowania strony, a także zużycie zasobów sieciowych i pamięci.

Zalety Lazy Loading

  1. Poprawa wydajności - Skrócenie czasu początkowego ładowania strony.
  2. Oszczędność zasobów - Wczytywane są tylko te dane, które są faktycznie potrzebne użytkownikowi.
  3. Lepsze doświadczenie użytkownika - Użytkownik szybciej widzi pierwszą zawartość strony.
  4. Mniejsze zużycie transferu danych - Przydatne szczególnie na urządzeniach mobilnych.
  5. Optymalizacja dla SEO - Dobrze zaimplementowany lazy loading nie wpływa negatywnie na indeksowanie treści przez wyszukiwarki.

Wady Lazy Loading

  1. Złożoność implementacji - Wymaga dodatkowej logiki i obsługi błędów.
  2. Opóźnienie w wyświetlaniu treści - Może powodować chwilowe "puste" miejsca w trakcie przewijania.
  3. Problemy z SEO - Jeśli nie jest prawidłowo zaimplementowany, może utrudnić indeksowanie dynamicznie ładowanych treści.

Implementacja Lazy Loading dla komentarzy pod postem

Poniżej znajduje się kod JavaScript implementujący dynamiczne wczytywanie komentarzy podczas przewijania strony:

HTML

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Lazy Loading Komentarzy</title>
    <style>
        #comments {
            max-width: 600px;
            margin: 20px auto;
        }
        .comment {
            padding: 10px;
            margin-bottom: 10px;
            border-bottom: 1px solid #ccc;
        }
    </style>
</head>
<body>
    <div id="comments">
        <h2>Komentarze</h2>
        <div id="comment-list"></div>
        <div id="loading" style="display: none; text-align: center;">Ładowanie...</div>
    </div>
    <script src="script.js"></script>
</body>
</html>

JavaScript (script.js)

let page = 1;
const commentsContainer = document.getElementById("comment-list");
const loadingIndicator = document.getElementById("loading");

async function loadComments() {
    loadingIndicator.style.display = "block";
    try {
        const response = await fetch(`https://jsonplaceholder.typicode.com/comments?_limit=5&_page=${page}`);
        const comments = await response.json();

        if (comments.length === 0) {
            window.removeEventListener("scroll", handleScroll);
            loadingIndicator.style.display = "none";
            return;
        }

        comments.forEach(comment => {
            const commentElement = document.createElement("div");
            commentElement.classList.add("comment");
            commentElement.innerHTML = `<strong>${comment.name}</strong><p>${comment.body}</p>`;
            commentsContainer.appendChild(commentElement);
        });
        page++;
    } catch (error) {
        console.error("Błąd ładowania komentarzy", error);
    } finally {
        loadingIndicator.style.display = "none";
    }
}

function handleScroll() {
    if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 50) {
        loadComments();
    }
}

window.addEventListener("scroll", handleScroll);
loadComments();

Jak działa kod?

  1. Na początku wczytywane jest 5 pierwszych komentarzy.
  2. Gdy użytkownik przewinie stronę na dół, wywoływana jest funkcja loadComments, która pobiera kolejne komentarze z API.
  3. Jeśli nie ma już więcej komentarzy do załadowania, skrypt przestaje nasłuchiwać zdarzenia przewijania.

Podsumowanie

Lazy Loading to skuteczna metoda poprawy wydajności stron internetowych poprzez dynamiczne ładowanie zasobów. W powyższym przykładzie zastosowano ją do komentarzy pod postem, co pozwala na płynne i zoptymalizowane wczytywanie treści. Kluczowe jest jednak odpowiednie zarządzanie błędami i zapewnienie dobrego doświadczenia użytkownika.

27 lutego 2025 18

Kategorie

programowanie

Tagi

javascript

Dziękujemy!
()

Powiązane wpisy

Wizualizacja tematu Long Polling vs Short Polling Porwnanie
21 stycznia 2025 5 min 26

Long Polling vs. Short Polling: Porównanie

Czytaj więcej
Grafika przedstawia Wyraenia regularne i ich obsuga w PHP oraz JavaScript
1 lutego 2025 5 min 19

Wyrażenia regularne i ich obsługa w PHP oraz JavaScript

Czytaj więcej
Grafika przedstawia Jak zrealizowa dwukierunkowe wizanie danych MVVM w Vanilla JS
2 lutego 2025 3 min 18

Jak zrealizować dwukierunkowe wiązanie danych MVVM w Vanilla JS?

Czytaj więcej
Wymiana doświadczeń

Masz podobne doświadczenia?

Chętnie poznam Twoją perspektywę i porozmawiam o tym temacie szerzej.

Napisz do mnie

Każda perspektywa może wnieść coś wartościowego do dyskusji.

Twoja prywatność i pliki cookies

  1. Ta strona internetowa wykorzystuje wyłącznie niezbędne pliki cookies, które są wymagane do jej prawidłowego działania – m.in. do poprawnego wyświetlania treści, zapamiętania podstawowych ustawień przeglądarki oraz zapewnienia stabilności serwisu.
  2. Nie stosuję plików cookies w celach marketingowych, reklamowych ani analitycznych.
  3. Strona ma charakter wyłącznie informacyjny i nie zawiera formularzy kontaktowych, rejestracyjnych ani zakupowych, przez które dane mogłyby być przesyłane na serwer.
  4. Nie zbieram danych osobowych podczas zwykłego korzystania z witryny.
  5. Serwis nie korzysta z certyfikatu SSL, jednak ze względu na informacyjny charakter strony nie jest wymagane przesyłanie poufnych danych. Zalecam jednak, aby nigdy nie wpisywać haseł ani danych osobowych na stronach bez szyfrowanego połączenia.
  6. Korzystając z tej strony, wyrażasz zgodę na używanie wyłącznie niezbędnych plików cookies.

Więcej informacji znajdziesz w mojej polityce prywatności.