Ekstensi Chrome lucu yang tidak memperlambat browsermu
Ekstensi browser dekoratif punya reputasi, dan sebagian besar memang pantas: berat, banyak omong, dan diinstal dengan daftar izin yang tidak dibaca siapa pun. Padahal sayang sekali, karena kategori ini sebenarnya seru dan setiap masalahnya bisa dihindari.
Tiga hal yang layak diperiksa
- Daftar izin. Chrome menunjukkannya sebelum kamu menginstal. Storage adalah file preferensi. Tabs, cookies, history, dan webRequest adalah izin yang memungkinkan ekstensi mengintip apa yang kamu jelajahi.
- Apakah ia menyentuh tata letak halamanmu. Ekstensi yang menyisipkan elemen ke dalam alur dokumen, atau mengukur posisi elemen di setiap peristiwa gulir, bisa membuat halaman yang mulus jadi tersendat, tak peduli sesedikit apa pun yang digambarnya.
- Ke mana ia mengirim permintaan. Sebuah hiasan dengan tab jaringan yang sibuk sedang mengerjakan tugas kedua yang tidak diberitahukan kepadamu.
Kenapa tata letak yang paling menggigit
Membaca properti tata letak — tinggi sebuah elemen, posisinya di layar — memaksa browser menyelesaikan dulu pekerjaan tata letak yang tertunda sebelum bisa menjawab. Lakukan itu di dalam penangan gulir, dan kamu baru saja meminta browser berhenti dan mengukur enam puluh kali per detik, pada halaman yang baru setengah jalan digambarnya.
Itulah mekanisme di balik sebagian besar keluhan “ekstensi ini bikin gulirannya lag”, dan itu tidak terlihat sampai seseorang memprofilnya. Solusinya tidak keren: jangan pernah membaca tata letak saat menggulir, hanya tulis transform, dan biarkan compositor yang menggerakkannya.
Seperti apa itu di sini
scrolldog adalah hewan peliharaan piksel kecil yang berlari di sepanjang tepi setiap halaman sesuai kecepatan gulirmu. Ia juga contoh nyata dari pemeriksaan di atas, karena ia harus lolos semuanya agar tetap enak untuk hidup berdampingan:
- Hanya dua izin: storage dan unlimitedStorage. Tidak ada tabs, tidak ada cookies, tidak ada history, tidak ada webRequest.
- Satu izin host — api.scroll.dog — dipakai untuk memeriksa lisensi, tidak pernah untuk menyentuh halaman yang sedang kamu buka.
- Hewan peliharaannya hidup di jalur tetap berukuran nol dan hanya pernah menulis CSS transform, jadi tata letak halamanmu sendiri tidak pernah berubah.
- Gulir didengarkan secara pasif dan diringkas jadi satu penulisan per frame animasi.
- Satu tombol menghapusnya dari setiap tab terbuka seketika.
Tidak ada satu pun dari itu yang bombastis — itu hanya standar minimum. Sesuatu yang seluruh tugasnya cuma enak dipandang tidak berhak membuat apa pun jadi lebih lambat.
Lihat anjingnya