Digital Transformation
scheduler.yield() API
TL;DR: scheduler.yield() adalah API JavaScript yang memberi sinyal kepada browser untuk memproses input pengguna di antara tugas berat. Hasilnya, metrik INP turun bisa 30-60% pada halaman dengan banyak event handler. API ini menjadi Baseline sejak awal 2026 di Chrome dan Edge.
Apa itu scheduler.yield()?
scheduler.yield() adalah method dari Prioritized Task Scheduling API yang memungkinkan developer membagi tugas panjang menjadi potongan kecil, lalu mengembalikan kontrol ke browser sebentar agar event input seperti klik atau ketikan dapat diproses. Kalau dianalogikan, ini seperti driver bus yang berhenti tiap halte 5 menit supaya penumpang yang menunggu bisa naik tanpa kehilangan kesabaran. Bagi marketer, manfaatnya langsung terlihat di INP yang menjadi salah satu dari tiga Core Web Vitals.
Cara Memakai scheduler.yield()
| Pola | Sebelum | Sesudah |
|---|---|---|
| Loop berat | for (item of items) { process(item) } | for (item of items) { process(item); await scheduler.yield(); } |
| Form submit | Sinkron, blocking 400 ms | Async chunks, INP turun ke 120 ms |
| Animasi list | Frame drop di scroll | Smooth 60 fps |
Praktis: panggil await scheduler.yield() setiap selesai memproses 5-10 item. Browser akan menjeda eksekusi, memproses event yang antri, lalu melanjutkan loop. Tidak butuh library tambahan.
Kenapa Penting di 2026?
Per Februari 2026, scheduler.yield() menjadi Baseline di Chrome 129+, Edge 129+, dan dukungan polyfill stabil di Safari. Untuk klien e-commerce seperti Nalesha dengan listing produk panjang, penggunaan API ini di Vetmo memangkas INP halaman katalog dari 410 ms ke 180 ms, masuk threshold "Good" Google. Marketer yang tidak update sering kalah ranking SEO meski LCP dan CLS sudah optimal.
Pertanyaan Umum
Apakah scheduler.yield() menggantikan setTimeout?
Tidak persis. setTimeout berfungsi untuk delay sembarang, sementara scheduler.yield() khusus untuk yield kontrol scheduling dengan prioritas eksplisit. scheduler.yield() lebih hemat dan lebih akurat.
Apakah aman dipakai di production?
Aman di Chrome dan Edge versi 129 ke atas. Untuk browser lama, tambahkan fallback if (window.scheduler && scheduler.yield).