Mengesan Windows Penyemak Imbas Tidak Aktif
Apabila bekerja dengan JavaScript, ia boleh memberi manfaat untuk menentukan sama ada tetingkap penyemak imbas tidak aktif pada masa ini. Ini membolehkan anda mengoptimumkan prestasi dengan menghentikan tugas yang tidak perlu apabila pengguna tidak melihat halaman.
Menggunakan API Keterlihatan Halaman
Cara yang boleh dipercayai untuk mengesan ketidakaktifan penyemak imbas ialah melalui API Keterlihatan Halaman. API ini menyediakan sifat "tersembunyi" yang menunjukkan sama ada halaman itu kelihatan kepada pengguna atau tidak.
document.addEventListener("visibilitychange", onchange);
Jika sifat "tersembunyi" adalah benar, halaman itu tidak aktif pada masa ini. Anda boleh menggunakan maklumat ini untuk menjeda atau meminimumkan operasi JavaScript dengan sewajarnya.
Keserasian Pelayar
API Keterlihatan Halaman disokong oleh versi terkini penyemak imbas utama, termasuk Chrome, Internet Explorer, Firefox dan Opera.
Mundur untuk Tidak Serasi Pelayar
Untuk penyemak imbas yang tidak menyokong API Keterlihatan Halaman, anda boleh kembali kepada kaedah kabur/fokus. Acara ini kurang dipercayai, tetapi ia boleh memberikan tahap pengesanan asas.
(function() { var hidden = "hidden"; // ... (code for fallbacks to blur/focus) })();
Contoh Pelaksanaan
Kod di bawah menunjukkan cara menggunakan API Keterlihatan Halaman dan kaedah sandaran untuk mengesan tetingkap penyemak imbas yang tidak aktif:
var hidden = "hidden"; if (hidden in document) document.addEventListener("visibilitychange", onchange); else if ((hidden = "mozHidden") in document) document.addEventListener("mozvisibilitychange", onchange); else if ((hidden = "webkitHidden") in document) document.addEventListener("webkitvisibilitychange", onchange); else if ((hidden = "msHidden") in document) document.addEventListener("msvisibilitychange", onchange); else if ("onfocusin" in document) document.onfocusin = document.onfocusout = onchange; else window.onpageshow = window.onpagehide = window.onfocus = window.onblur = onchange; function onchange(evt) { var v = "visible", h = "hidden", evtMap = { focus: v, focusin: v, pageshow: v, blur: h, focusout: h, pagehide: h }; evt = evt || window.event; if (evt.type in evtMap) document.body.className = evtMap[evt.type]; else document.body.className = this[hidden] ? "hidden" : "visible"; } // Set the initial state if (document[hidden] !== undefined) onchange({ type: document[hidden] ? "blur" : "focus" });
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Windows Pelayar Tidak Aktif Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!