สอบถามเกี่ยวกับการแสดงสถานะ online offline
รบกวนสอบถามเพื่อเป็นไอเดียครับ
ลักษณะที่ต้องการจะ คล้าย ๆ web board ทั่ว ๆ ไป หน่ะครับ ที่ใต้รูปแทนตัวจะมี icon แสดงว่า online หรือ offline อยู่
วิธีที่ผมทำ ตอนนี้ ง่าย ๆ คือ พอ login แล้ว update สถานะใน db ของ user นั้นเป็น on พอ logout ก็ update เป็น off
ปัญหามันมีอยู่ว่า user ปิด web โดยที่ไม่ logoff (กด alt+f4 หรือ กดปุ่ม ปิด) มันเลยไม่มีการไป update status ให้เป็น off ครับ
ตอนนี้ใน body ลองใช้ unload แล้ว เรียก java script ให้ check size ของ windows ดู ถ้ามีการปิด web
จะให้มันไปเรียก function ของ xajax เพื่อ update status ซึ่ง มันทำงานได้ กรณีที่รัน บน localhost หน่ะครับ
แต่พอเอาไปขึ้น web จริง ๆ มันดันรันไม่ได้แฮะ (เลยคิดว่าวิธีการนี้เป็นวิธีที่ไม่ค่อยดีเท่าไหร่)
เข้าเรื่องแล้วครับ ผม ได้ดูตัวอย่าง counter online บน web นี้ ที่บอกว่า แสดงรายการ user onlie
แต่ไม่เข้าใจว่า พอ user ปิด web ไปแล้ว code มันจะไปทำงานในส่วนไหนครับ ถึงจะไป remove user ออกจาก user.dat ได้
ทั้ง ๆ ที่ไม่ได้ logout
พอเปิด web ขึ้นมาใหม่ โดยที่ยังไม่ login มันยังขึ้นชื่อผม online อยู่ แต่พอ refresh สองสามที มันหายไปละ ไม่ทราบว่า ตรงนี้ check ยังไงครับ
งึกๆ งักๆ
หลักการง่ายๆ ก็คือ ตรวจสอบ user ทุกคนเมื่อมีการเรียก useronline ครับ คนที่มาตามกำหนด ก็จะเก็บไว้ หรือบอกว่า ยังอยู่ ส่วนคนที่ครบกำหนดแล้วไม่มา ก็ให้แจ้งว่า logout ไปแล้ว
ดูที่โค้ดเพิ่มเติมน่าจะเข้าใจได้นะ...
งง มะ....
หลักการง่ายๆ ก็คือ ตรวจสอบ user
ทุกคนเมื่อมีการเรียก useronline ครับ >>>>> ตรวจสอบ request ของใครของมัน หรือว่า ใครก็ได้ที่มีการเข้ามาล่าสุด เราก็ใช้ request ตัวนี้ไป ตรวจสอบคนอื่น
คือคนที่มาตามกำหนด ก็จะเก็บไว้ หรือบอกว่า ยังอยู่ >>> อะไรบอกหว่า
ส่วนคนที่ครบกำหนดแล้วไม่มา ก็ให้แจ้งว่า logout ไปแล้ว >> งง
ดูที่โค้ดเพิ่มเติมน่าจะเข้าใจได้นะ... >> ไม่เข้าใจหลักการ
แต่อยากรู้ เป็นวิทยาทาน
หลายๆ บทความ ผมไม่สามารถเขียนออกมาเป็นตัวอักษรได้ เนื่องจากความซับซ้อนของมัน จริงๆ จะว่าไปมันก็ไม่ซับซ้อนหรอก เพียงแต่ผมไม่สามารถเขียนคำอธิบายเป็นภาษาง่ายๆ ได้เืท่านั้น
สิ่งที่ผมพอจะทำได้ ก็คือ การให้ดูตัวอย่าง ผมมองว่า การให้ดูโค้ดที่ทำงานได้ จะให้คำอธิบายหลายๆอย่างที่เราไม่เข้าใจได้ดีกว่าการดู โค้ดเฉยๆ แต่ทั้งหมดจะไม่ทำให้เราเข้าใจได้ ถ้าเราไม่คิดจะศึกษามันจริงจัง ผมออกแบบโค้ดโดยการเห็นผลลัพท์ของมัน แต่คุณโชคดีกว่า ที่คุณเห็นทั้งผลลัพท์และได้เห็นโค้ดที่ผมทำเส็จแล้ว
ก็บ่นๆไปงั้นแหละครับ เรื่องของเรื่องคือ ผมเขียนให้มันเข้าใจได้ง่ายๆไม่ถูกเท่านั้น .........
การกลับไปตรวจสอบตามคาบเวลาครับ
บอกแค่จังหวะนี้ก็พอครับผม