Saya sedang mengusahakan sistem web yang perlu mengesahkan sama ada ia dalam talian, saya menambah medan dalam talian pada jadual pengguna dan 0 bermakna di luar talian butang diklik untuk keluar seperti biasa, medan dalam talian jadual pengguna akan ditetapkan 0, mengosongkan sesi dan keluar dari tapak web tiada masalah, tetapi adalah mustahil untuk menukar status dalam talian pengguna kepada luar talian selepas pengguna menutup terus. tetingkap atau pelayar. Pada masa ini cuba menggunakan JS untuk memantau sama ada pengguna menutup tetingkap atau penyemak imbas dan kemudian menambahkan kaedah keluar pada acara penutupan Beberapa kod JS yang terdapat di Internet untuk memantau penutupan penyemak imbas adalah seperti berikut
<script type="text/javascript">
window.onbeforeunload = function(e) {
e = e || window.event;
var msg = "您确定要离开此页面吗?";
// IE
e.cancelBubble = true;
e.returnValue = msg;
// Firefox
if(e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
// Chrome / Safari
return msg;
};
</script>
Kaedah seperti onbeforeunload atau onload tidak dapat menentukan tindakan menutup penyemak imbas/menyegarkan halaman/melompat halaman Saya tertanya-tanya jika sesiapa mempunyai pengalaman dalam bidang ini
Tempoh perkhidmatan dimaklumkan setiap 1s bahawa pelanggan dalam talian dan disahkan pada pelayan Jika pelanggan kehilangan hubungan, ia disahkan berada di luar talian.
Gunakan websocket