Halaman yang dibiarkan terbuka di tab latar belakang mungkin tidak perlu terus menganimasikan atau menyegarkan data yang tidak penting. Peristiwa visibilitasperubahan memungkinkan aplikasi menjeda pekerjaan opsional saat dokumen disembunyikan dan melanjutkannya saat terlihat.

function updateActivity() {
  if (document.hidden) {
    stopOptionalPolling();
    return;
  }
  refreshVisibleData();
}

document.addEventListener("visibilitychange", updateActivity);
updateActivity();

Jeda hanya pekerjaan yang bisa menunggu dengan aman

  • Jaga agar persistensi penting dan operasi yang dipicu pengguna dapat diandalkan terlepas dari visibilitas tab.
  • Lanjutkan dengan pemeriksaan status baru alih-alih mengasumsikan setiap pengatur waktu yang terlewat berjalan.
  • Hapus pendengar acara ketika pengontrol tingkat halaman dibuang.

Pengatur waktu di latar belakang sudah dibatasi secara berbeda di seluruh browser. Perlakukan visibilitas sebagai sinyal untuk mengurangi pekerjaan opsional, bukan sebagai mekanisme penjadwalan yang tepat.

Uji dengan berpindah tab dan kembali lagi setelah jeda. Antarmuka harus menyegarkan dari keadaan saat ini tanpa menduplikasi permintaan atau kehilangan masukan pengguna.