A-AA+then

สอบถามเกี่ยวกับการแสดงสถานะ online offline

3,970

รบกวนสอบถามเพื่อเป็นไอเดียครับ

ลักษณะที่ต้องการจะ คล้าย ๆ 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 ยังไงครับ

8 ความคิดเห็น

หลักการของ useronline แบบ ajax ก็คือ การกลับไปตรวจสอบตามคาบเวลาครับ ถ้าหากไม่มีการกลับมาตรวจสอบตรงตามเวลาที่กำหนด ก็ให้ถือว่า user นั้น logout ออกไปแล้วครับ
1

ขอบคุณครับ
2

คือให้มีส่วน สังให้รันเมื่อครบกำหนดหรือครับ
งึกๆ งักๆ
3

เปล่าครับ ไม่ต้องมี จะอธิบายไงดีละ.......

หลักการง่ายๆ ก็คือ ตรวจสอบ user ทุกคนเมื่อมีการเรียก useronline ครับ คนที่มาตามกำหนด ก็จะเก็บไว้ หรือบอกว่า ยังอยู่ ส่วนคนที่ครบกำหนดแล้วไม่มา ก็ให้แจ้งว่า logout ไปแล้ว

ดูที่โค้ดเพิ่มเติมน่าจะเข้าใจได้นะ...

งง มะ....
4

 

หลักการง่ายๆ ก็คือ ตรวจสอบ user
ทุกคนเมื่อมีการเรียก useronline ครับ >>>>> ตรวจสอบ request ของใครของมัน หรือว่า ใครก็ได้ที่มีการเข้ามาล่าสุด เราก็ใช้ request  ตัวนี้ไป ตรวจสอบคนอื่น


คือคนที่มาตามกำหนด ก็จะเก็บไว้ หรือบอกว่า ยังอยู่ >>>  อะไรบอกหว่า
ส่วนคนที่ครบกำหนดแล้วไม่มา ก็ให้แจ้งว่า logout ไปแล้ว  >> งง

ดูที่โค้ดเพิ่มเติมน่าจะเข้าใจได้นะ...   >> ไม่เข้าใจหลักการ

แต่อยากรู้ เป็นวิทยาทาน

 

5

ครึๆ ไม่รู้จะอธิบายยังไง......

หลายๆ บทความ ผมไม่สามารถเขียนออกมาเป็นตัวอักษรได้ เนื่องจากความซับซ้อนของมัน จริงๆ จะว่าไปมันก็ไม่ซับซ้อนหรอก เพียงแต่ผมไม่สามารถเขียนคำอธิบายเป็นภาษาง่ายๆ ได้เืท่านั้น

สิ่งที่ผมพอจะทำได้ ก็คือ การให้ดูตัวอย่าง ผมมองว่า การให้ดูโค้ดที่ทำงานได้ จะให้คำอธิบายหลายๆอย่างที่เราไม่เข้าใจได้ดีกว่าการดู โค้ดเฉยๆ แต่ทั้งหมดจะไม่ทำให้เราเข้าใจได้ ถ้าเราไม่คิดจะศึกษามันจริงจัง ผมออกแบบโค้ดโดยการเห็นผลลัพท์ของมัน แต่คุณโชคดีกว่า ที่คุณเห็นทั้งผลลัพท์และได้เห็นโค้ดที่ผมทำเส็จแล้ว

ก็บ่นๆไปงั้นแหละครับ เรื่องของเรื่องคือ ผมเขียนให้มันเข้าใจได้ง่ายๆไม่ถูกเท่านั้น .........
6

อิอิอิ คือสงสัย ตรงคำที่บอกว่า

 การกลับไปตรวจสอบตามคาบเวลาครับ

บอกแค่จังหวะนี้ก็พอครับผม 
7

Ajax มันทำงานตามคาบเวลา ด้วย Auto Refresh ครับ ถ้าเรายังเปิดหน้าเพจอยู่ เราก็คงยังติดต่อกับ Sำrver อยู่ ซึ่งก็หมายความว่าเรายัง online อยู่นั่นแหละครับ
8
^