Latar Belakang: Saya sedang melakukan beberapa tes antarmuka pengguna yang perlu mendeteksi apakah orang memperhatikan atau tidak. Tapi, pertanyaan ini bukan tentang API visibilitas halaman .
Secara khusus, saya ingin tahu bagaimana kode Javascript saya akan terpengaruh jika tab saat ini tidak aktif, atau jendela browser tidak aktif, di browser yang berbeda. Saya telah menggali yang berikut ini sejauh ini:
- ios 5 menjeda javascript saat tab tidak aktif
setInterval
dansetTimeout
penundaan berkurang ketika tab tidak aktif - sepertinya ini baru saja mulai muncul baru-baru ini dan dapat mengacaukan tes unit Jasmine, di sekitar hal-hal lain.requestAnimationFrame
diperlambat ketika tab tidak aktif (masuk akal, tidak bisa memikirkan mengapa hal ini mempengaruhi terlalu banyak orang)
Saya punya pertanyaan berikut:
- Selain peramban seluler, apakah peramban desktop pernah menghentikan eksekusi JS ketika sebuah tab tidak aktif? Kapan dan browser apa?
- Browser mana yang mengurangi
setInterval
pengulangan? Apakah hanya dikurangi menjadi batas atau persentase? Sebagai contoh, jika saya memiliki 10ms repeat versus repeat 5000ms, bagaimana masing-masing akan terpengaruh? - Apakah perubahan ini terjadi jika jendela tidak fokus, bukan hanya tab? (Saya membayangkan akan lebih sulit untuk dideteksi, karena membutuhkan OS API.)
- Apakah ada efek lain yang tidak akan diamati pada tab aktif? Bisakah mereka mengacaukan hal-hal yang seharusnya dilakukan dengan benar (yaitu tes Jasmine yang disebutkan sebelumnya)?
setInterval
/ setTimeout
kali di bawah 1000ms diubah menjadi 1000ms ketika tab / jendela buram
setInterval
/ setTimeout
waktu di bawah 1000ms diubah menjadi 1000ms ketika tab / jendela kabur. Tidak jelas apa yang Anda coba sampaikan