Solusi untuk menghitung pengguna online saat ini
Saat membangun situs web komunikasi online, ada masalah yang membuat saya merasa sangat bermasalah, yaitu tentang statistik real-time pengguna online. Persyaratan Pelanggan: Hitung jumlah pengguna online saat ini, jumlah wisatawan, jumlah anggota, dan daftar pengguna online, termasuk wisatawan, anggota dan administrator (jika mereka wisatawan, ID wisatawan akan secara otomatis dihasilkan, dan jika mereka adalah anggota, nama anggota akan ditampilkan). Karena membutuhkan waktu nyata, pertama saya akan melewati gagasan menyelesaikannya dengan global.asa.
Kunci untuk masalah ini adalah bagaimana memberi tahu pengguna telah pergi, dan cara menjalankan file atau fungsi ketika pengguna pergi.
Setelah berdiskusi dengan beberapa teman secara online, masalah ini akhirnya terpecahkan.
Solusinya adalah: Tulis halaman umum. Halaman umum yang disebut berarti bahwa setiap halaman dalam aplikasi berisi halaman ini, misalnya: header.asp. Di halaman ini, tulis sepotong kode menggunakan xmlhttp. Tujuan dari potongan kode ini adalah untuk mengirim permintaan ke server setiap 10 detik atau 20 detik. Tujuannya adalah untuk memperbarui waktu online dari pengguna saat ini dan menghapus pengguna yang waktu daringnya telah melampaui periode waktu tertentu, sehingga pengguna online mencatat dalam database mempertahankan waktu-nyata waktu nyata tertentu.
Metode implementasi utama adalah:
Buat database baru, nama bidang adalah: id (karakter), nama (karakter), pengguna (angka) tt (tanggal), admin (kode izin, pengguna 0-resmi, 1-admin)
Nama Tabel: Online
header.asp ↓
==============================================================================================================
<%
......
ifsession ("s_in") <> 1andsession ("s_name") = "" Lalu, pengguna masuk untuk pertama kalinya untuk pertama kalinya
rs.open "SELECT*fromline", Conn, 3,3
rs.addnew
rs ("id") = sessionId
rs ("name") = "tamu" & session.SessionId
rs ("pengguna") = 0'0 berarti bahwa pengguna tidak masuk dan merupakan identitas wisatawan
rs ("tt") = sekarang
rs.update
rs.close
sesi ("s_in") = 1'met informasi pengguna telah disimpan dalam database, menunjukkan bahwa itu telah online
endif
ifsession ("s_name") <> "" Lalu 'pengguna telah masuk melalui kotak login
rs.open "pilih*fromlinewhereId = '" & session.SessionId & "'", Conn, 3,3
rs ("name") = sesi ("s_name")
rs ("admin") = sesi ("s_admin") 'Perbarui nama pengguna ke nama anggota
rs ("pengguna") = 1 'berarti bahwa pengguna telah masuk dan merupakan anggota
rs ("tt") = Sekarang atur waktu sistem saat ini ke waktu login pengguna
rs.update
rs.close
endif
......
%>
......
<head>
......
<ScriptLanguage = JavaScript>
functionTest ()
{
varxmlhttp = newActivexObject ("msxml2.xmlhttp");
xmlhttp.open ("POST", "ONEOnline.asp", false); // Kirim permintaan pembaruan ke OnceOnline.asp
xmlhttp.setRequestHeader ("tipe konten", "Aplikasi/X-WWW-Form-Urlencoded");
xmlhttp.send ();
}
setInterval ("test ();", 10); // Kirim permintaan pembaruan dalam 10 detik
</script>
......