Cara Optimasi Scroll Next.js dan Pemuatan Gambar
Iwan Efendi2 min
Kolaborasi dengan AI mempercepat pengembangan, tetapi seringkali menyebabkan satu masalah umum: media yang berat dan tidak teroptimasi yang membuat antarmuka pengguna terasa "berat" atau tersendat saat di-scroll. Dalam putaran optimasi terbaru kami, kami menangani masalah ini secara langsung.
Ketika sebuah halaman berisi banyak gambar (seperti feed blog atau bagian unggulan), browser seringkali kesulitan dengan dua hal:
Kami menerapkan tiga optimasi teknis khusus untuk mengubah pengalaman scrolling:
1. Kekuatan Atribut
Secara default, 3. Akselerasi Hardware dengan
Untuk kartu dengan animasi hover atau rotasi masuk, kami menambahkan
Implementasi ini menghasilkan:
Masalah: Mengapa Scrolling Terasa Berat?
- Bandwidth Berlebih: Mengunduh gambar berukuran 2MB untuk kontainer 300px karena browser tidak tahu ukuran tampilan akhirnya.
- Pemblokiran Main Thread: Menghitung animasi dan transformasi CSS yang kompleks (seperti skala hover atau rotasi) murni pada CPU.
Solusi: Pendekatan Tiga Arah
1. Kekuatan Atribut sizes
Secara default, next/image dengan properti fill tidak tahu seberapa besar gambar tersebut di layar pengguna sampai CSS dimuat sepenuhnya. Hal ini seringkali membuat browser mengunduh gambar yang sangat besar.
Kami menambahkan pemetaan sizes yang spesifik (misal: (max-width: 768px) 100vw, 33vw). Ini memberi tahu browser: "Di ponsel, gunakan lebar penuh; di desktop, gambar ini hanya memakan sepertiga layar." Ini secara signifikan mengurangi beban unduhan.
2. Memprioritaskan Konten "Above the Fold"
Gambar di bagian atas halaman harus siap secara instan. Kami mengidentifikasi kartu "Featured" kami dan menambahkan propertipriority. Ini memastikan aset penting tersebut dimuat lebih dulu, meningkatkan skor Largest Contentful Paint (LCP).
3. Akselerasi Hardware dengan will-change
Untuk kartu dengan animasi hover atau rotasi masuk, kami menambahkan will-change: transform. Penambahan CSS kecil ini memberi petunjuk kepada browser bahwa suatu elemen akan berubah, memungkinkannya memindahkan proses rendering ke GPU daripada CPU.
Hasilnya
- Zero Layout Shift: Kontainer dipesan dengan akurat.
- Respons Instan: Animasi yang dipicu oleh scroll terasa lancar.
- Core Web Vitals yang Lebih Baik: Skor LCP dan CLS yang meningkat.
Topics
Topik dalam catatan
Jelajahi pembahasan serupa lewat topik-topik terkait berikut.
Bagikan artikel ini
Diskusi
Menyiapkan area komentar...