Ketika membangun aplikasi web atau website, kinerja adalah hal yang sangat penting untuk memastikan pengalaman pengguna yang optimal. Salah satu teknik yang dapat digunakan untuk meningkatkan kinerja frontend adalah lazy loading. Lazy loading memungkinkan Anda untuk memuat elemen-elemen tertentu di halaman hanya ketika dibutuhkan, bukan saat pertama kali halaman dimuat. Dengan menggunakan teknik ini, Anda bisa mengurangi waktu loading halaman dan menghemat bandwidth.
Apa itu Lazy Loading?
Lazy loading adalah teknik pemrograman yang menunda pemuatan objek atau sumber daya (seperti gambar, skrip, atau konten lainnya) sampai benar-benar diperlukan. Alih-alih memuat seluruh konten halaman web saat pertama kali dimuat, lazy loading hanya memuat elemen-elemen yang akan terlihat oleh pengguna.
Contohnya, pada halaman yang berisi banyak gambar, lazy loading akan menunda pemuatan gambar-gambar yang tidak berada dalam area tampilan (viewport) sampai pengguna menggulir halaman ke bawah. Hal ini membantu mengurangi waktu muat awal halaman dan membuat aplikasi terasa lebih cepat.
Manfaat Lazy Loading:
Pengurangan Waktu Pemuatan Halaman
Dengan hanya memuat sumber daya yang diperlukan, waktu pemuatan halaman menjadi lebih cepat, memberikan pengalaman pengguna yang lebih responsif.Penghematan Bandwidth
Lazy loading hanya memuat elemen yang diperlukan, sehingga menghemat bandwidth dan mempercepat proses pengiriman konten kepada pengguna.Peningkatan Kinerja pada Perangkat Mobile
Lazy loading sangat efektif pada perangkat dengan koneksi internet yang terbatas atau perangkat mobile dengan keterbatasan sumber daya.
Cara Mengimplementasikan Lazy Loading di Frontend
Lazy Loading untuk Gambar
Menggunakan
loading="lazy"
pada elemen<img>
adalah cara yang sangat mudah untuk mengimplementasikan lazy loading di HTML. Ini memberi tahu browser untuk menunda pemuatan gambar sampai gambar tersebut hampir muncul di layar.<img src="image.jpg" alt="Gambar" loading="lazy">
Browser modern secara otomatis akan menangani elemen gambar dengan atribut ini tanpa perlu menggunakan JavaScript tambahan.
Lazy Loading untuk Skrip dan Iframe
Selain gambar, skrip dan iframe juga dapat dimuat dengan cara lazy loading. Anda bisa menunda pemuatan skrip dan iframe dengan menggunakan atribut
defer
atau memuat skrip hanya saat diperlukan.<script src="example.js" defer></script>
Untuk iframe, Anda dapat menggunakan atribut
loading="lazy"
seperti halnya gambar:<iframe src="https://www.example.com" loading="lazy"></iframe>
Menggunakan Intersection Observer API
Untuk kontrol lebih lanjut, Anda bisa menggunakan Intersection Observer API. API ini memungkinkan Anda untuk memantau elemen yang memasuki atau keluar dari viewport dan memuat elemen-elemen tersebut secara dinamis.
Berikut adalah contoh implementasi lazy loading menggunakan Intersection Observer:
const images = document.querySelectorAll('img.lazy'); const lazyLoad = (entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.src = entry.target.dataset.src; entry.target.classList.remove('lazy'); observer.unobserve(entry.target); } }); }; const observer = new IntersectionObserver(lazyLoad, { threshold: 0.1 }); images.forEach(image => { observer.observe(image); });
Pada kode di atas, gambar hanya akan dimuat ketika hampir terlihat oleh pengguna di viewport. Gambar tersebut disimpan dalam atribut
data-src
dan hanya dipindahkan ke atributsrc
ketika gambar masuk ke area tampilan.
Optimasi Lain yang Dapat Digabungkan dengan Lazy Loading
Selain lazy loading, ada beberapa teknik lain yang dapat digunakan untuk meningkatkan kinerja frontend secara keseluruhan, seperti:
Minifikasi dan Penggabungan File
Mengurangi ukuran file JavaScript dan CSS dengan cara minifikasi dan penggabungan dapat mengurangi waktu pemuatan halaman.Penggunaan CDN (Content Delivery Network)
Menggunakan CDN untuk mendistribusikan file statis (seperti gambar, skrip, dan stylesheet) dari server terdekat dengan pengguna dapat mengurangi waktu respons.Penggunaan WebP untuk Gambar
Format gambar WebP menawarkan kompresi yang lebih baik tanpa mengurangi kualitas gambar, yang sangat efektif untuk penghematan bandwidth.
Kesimpulan
Lazy loading adalah salah satu teknik yang efektif untuk meningkatkan kinerja aplikasi web dan mengurangi waktu pemuatan halaman. Dengan menunda pemuatan elemen-elemen yang tidak perlu saat halaman pertama kali dimuat, Anda bisa memberikan pengalaman pengguna yang lebih cepat dan responsif. Jangan ragu untuk menggabungkan teknik lain seperti minifikasi, CDN, dan penggunaan format gambar yang lebih efisien untuk hasil yang lebih maksimal.
Semoga artikel ini membantu dalam memahami cara mengoptimalkan kinerja frontend menggunakan lazy loading!