[問題] 實做聊天室 get userlist every 1 second

看板Ajax作者 (悟道修行者)時間14年前 (2011/07/18 18:19), 編輯推噓5(5016)
留言21則, 4人參與, 最新討論串1/1
請問如何每隔一秒, 自動用 Ajax 偵測目前在線人次? 因為有些人離線可能是因為網路突然斷掉害的, 如果是用 onunload 之後丟個 send() 叫 php 清 session, 就沒辦法避免這種狀況了。 所以得用使用者固定丟某種訊息告訴 server "我還在" 才行 請問有什麼想法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.0.97

07/18 18:24, , 1F
定時ajax阿...
07/18 18:24, 1F

07/18 19:23, , 2F
這樣講怎麼可能懂 :p
07/18 19:23, 2F

07/18 20:14, , 3F
setInterval....我和一樓同樣的想法...只沒想到你不知道XD
07/18 20:14, 3F

07/18 20:47, , 4F
不過每秒一次太頻繁了
07/18 20:47, 4F

07/18 20:58, , 5F
其實聊天室不一定要即時顯示誰還在線上阿...
07/18 20:58, 5F

07/18 20:58, , 6F
像我掛在freenode IRC上 ping Timeout都240秒左右
07/18 20:58, 6F

07/18 22:11, , 7F
我有用 setInterval, 裡面有蘊含更深的邏輯問題阿...
07/18 22:11, 7F

07/18 22:13, , 8F
願聞其詳?
07/18 22:13, 8F

07/19 10:12, , 9F
yap, 你沒有提到 timestamp 這個字? 莫非你是用別種方法?
07/19 10:12, 9F

07/19 10:13, , 10F
如果你是用 timestamp, 你指講個定時 ajax,或者setInterl
07/19 10:13, 10F

07/19 10:13, , 11F
我怎麼可能懂?如果你是講別的, 願聞其詳。
07/19 10:13, 11F

07/19 10:28, , 12F
其實不用太頻凡的更新使用者列表,5~10秒一次就行了
07/19 10:28, 12F

07/19 10:29, , 13F
然後在1~5秒內,讓使用者自動回應自己還在,就可以統計
07/19 10:29, 13F

07/19 11:10, , 14F
請問一下, Javascript 好像沒辦法同時執行兩個函式?
07/19 11:10, 14F

07/19 11:11, , 15F
我把聊天室的 說話/得到對話/得到使用者列表 寫在一起
07/19 11:11, 15F

07/19 11:12, , 16F
偵測到 Enter 的時候用 Ajax 丟對話給 say.php
07/19 11:12, 16F

07/19 11:12, , 17F
body onload 的時候用 setInterval, 400毫秒
07/19 11:12, 17F

07/19 11:12, , 18F
那麼, 如果我要 5 秒去讀使用者列表, 好像沒辦法再去觸發
07/19 11:12, 18F

07/19 11:13, , 19F
如果秒數一樣是400毫秒, 還可以寫在setInterval的函式中
07/19 11:13, 19F

07/19 11:14, , 20F
註:setInterval的參數是讀取使用者對話的函式
07/19 11:14, 20F

07/19 13:39, , 21F
不要用setInterval啦 我都用setTimeout
07/19 13:39, 21F
文章代碼(AID): #1E90YSrv (Ajax)
文章代碼(AID): #1E90YSrv (Ajax)