Tata Letak, Paint, dan Komposit: Alur Render
Pahami alur tata letak, paint, dan komposit browser untuk memperkirakan biaya perubahan gaya.
Tata Letak, Paint, dan Komposit: Alur Render adalah pelajaran CSS Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CSS Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CSS Academy mencakup 4 pelajaran total.
Tiga Tahap Perenderan
Setelah pohon render dibuat, peramban menjalankan tiga tahap: Tata Letak (menghitung ukuran dan posisi elemen), Penggambaran (mengisi piksel dengan warna, teks, dan gambar), serta Komposit (menggabungkan lapisan yang telah digambar dan menampilkannya di layar).
Tata Letak (Aliran Ulang)
Tata letak menghitung geometri — lebar, tinggi, dan posisi x/y — untuk setiap elemen. Mengubah properti yang memengaruhi geometri (lebar, batas luar, ruang dalam, ukuran fon, posisi) memicu tata letak untuk elemen tersebut dan kemungkinan seluruh subpohonnya — tahap yang paling mahal.
Penggambaran
Penggambaran mengisi piksel untuk setiap lapisan: latar belakang, batas, teks, dan bayangan. Mengubah warna, warna latar, visibilitas, atau radius batas memicu penggambaran ulang tanpa tata letak ulang — lebih murah daripada tata letak, tetapi tetap mahal jika area yang besar digambar ulang.
Komposit
Kompositor menggabungkan lapisan menggunakan GPU. Properti CSS yang hanya memengaruhi komposit — transformasi dan opasitas — dapat dianimasikan tanpa memicu tata letak atau penggambaran. GPU menanganinya pada 60 frame per detik dengan keterlibatan CPU yang minimal.
Referensi Pemicu CSS
csstriggers.com (sekarang dokumentasi sisi peramban) mendokumentasikan properti CSS mana yang memicu tata letak, penggambaran, dan/atau komposit pada setiap mesin peramban. Gunakan untuk mengaudit properti animasi. Utamakan transformasi/opasitas untuk properti yang dianimasikan.
Tata Letak Berulang
Pengulangan tata letak terjadi ketika JavaScript bergantian membaca properti tata letak (offsetWidth) dan menulis properti gaya dalam satu perulangan. Setiap penulisan membatalkan tata letak; setiap pembacaan memaksa aliran ulang sinkron. Kelompokkan semua pembacaan sebelum semua penulisan untuk menghindari pengulangan.
<pre class="snippet">// BAD: read-write-read-write loop
elements.forEach(el => { const w = el.offsetWidth; el.style.width = w + 10 + "px"; });
// GOOD: batch reads then writes</pre>Properti Khusus Kompositor
Hanya transform dan opacity yang sepenuhnya ditangani oleh kompositor ketika elemen berada pada lapisannya sendiri. Menganimasikan properti lain — bahkan kiri/atas — memicu tata letak atau penggambaran pada utas utama dan dapat menyebabkan tampilan tersendat.
Pembuatan Lapisan GPU
Peramban mempromosikan elemen ke lapisan GPU sendiri ketika elemen memiliki perubahan yang akan datang pada transformasi, animasi CSS pada transformasi/opasitas, posisi tetap dengan tetangga yang dikompositkan, atau transformasi 3D. Setiap lapisan menggunakan memori GPU — terlalu banyak lapisan menyebabkan tekanan memori.
Menghindari Badai Pengecatan
Badai pengecatan terjadi ketika sebagian besar halaman mengalami pengecatan ulang pada setiap bingkai. Buat profil di Chrome DevTools → Perenderan → Kilatan pengecatan untuk mengidentifikasi area yang dicat ulang. Pisahkan elemen yang sering dianimasikan ke lapisannya sendiri agar area pengecatan tetap terbatas.
Panel Performa DevTools
Rekam profil performa di Chrome DevTools. Bagan api menampilkan peristiwa Tata Letak, Pembaruan Pohon Lapisan, Pengecatan, dan Komposit. Bilah tata letak atau pengecatan yang panjang menunjukkan hambatan performa. Upayakan waktu bingkai di bawah 16ms untuk mempertahankan 60fps.
Panduan Praktis Animasi
Animasikan dengan transform dan opacity jika memungkinkan. Gunakan clip-path, bukan width/height, untuk animasi penyingkapan—clip-path ramah kompositor pada peramban modern. Hindari menganimasikan box-shadow; gunakan opacity + pseudoelemen dengan bayangan yang telah dirender sebelumnya.
Uji Pemahaman
Dua properti CSS apa yang dapat dianimasikan tanpa memicu tata letak atau pengecatan?
Ringkasan
Alur perenderan—Tata Letak, Pengecatan, Komposit—menentukan performa animasi. Tata letak paling mahal, pengecatan memiliki biaya sedang, dan properti yang hanya dikompositkan (transform, opacity) ditangani oleh GPU. Memahami pemicunya memungkinkan Anda membuat animasi 60fps yang mulus tanpa perubahan tata letak berulang atau badai pengecatan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tata Letak, Paint, dan Komposit: Alur Render” gratis?
Ya — teks lengkap “Tata Letak, Paint, dan Komposit: Alur Render” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CSS Academy, upgrade ke CoddyKit PRO. Kursus CSS Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Tata Letak, Paint, dan Komposit: Alur Render”?
Pahami alur tata letak, paint, dan komposit browser untuk memperkirakan biaya perubahan gaya. Kamu berlatih CSS Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai CSS Academy?
Tidak diperlukan pengalaman sebelumnya. CSS Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Tata Letak, Paint, dan Komposit: Alur Render” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran CSS Academy ini?
Ya. Setiap pelajaran CSS Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- CSS Kritis dan Pemblokiran Render
- Tata Letak, Paint, dan Komposit: Alur Render
- will-change dan Promosi Lapisan
- Cakupan CSS dan Gaya yang Tidak Digunakan