作者banana2014 (香蕉共和國)
看板PHP
標題[問題] ajax聊天室最有效率的update方法…
時間Sun May 8 23:14:19 2016
這篇問題跟ajax和php都有關,
所以我同時在ajax板和php板都有張貼此問題
----------
我想用ajax來做一個簡單的聊天室
在update聊天訊息的部分我想了很久
因為我不曉得該怎麼讓伺服器端(伺服器端語言:PHP)在一有新訊息出現時,
自動傳更新給客戶端
也就是不要用「客戶端每隔5秒發送request到伺服器端檢查是否有新訊息」的這種方式
因為這樣太沒效率了
而且會浪費不必要的資源
如果遲遲沒有新訊息更新怎麼辦呢?
那是不是就一直讓電腦一直做不必要的檢查呢?
所以有沒有那種「伺服器給客戶端即時的更新資料」
而不是「客戶端每隔一段時間檢查伺服器是否有更新」的程式呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.139.126.63
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1462720462.A.11A.html
1F:→ MOONRAKER: (1)comet (2)socket 05/08 23:41
2F:推 et69523820: comet05/09 00:08
謝謝,剛剛我查了一個比comet還要好的,叫websocket
它好像要把通訊協定改成「ws://」才能連線,
想請問一下我還需要在伺服器灌什麼嗎?
因為我的網站是租外面的虛擬主機,
不曉得他們的主機有沒有支援這個通訊協定
也不曉得需不需要灌什麼東西?
我對websocket不是很懂,
有些舊的瀏覽器好像也不支援這項技術,
所以要讓舊瀏覽器(如IE6, Netscape)也能使用這個聊天室程式,
是不是還是只能用輪詢的方式更新資訊?
謝謝
※ 編輯: banana2014 (101.139.126.63), 05/09/2016 00:24:06
3F:→ MOONRAKER: netscape開什麼玩笑 你到底想做什麼網站05/09 00:38
我想做一個在所有瀏覽器都能正常顯示的網站,
google都能在所有瀏覽器正常顯示了,
我想應該做出一個全方位跨瀏覽器的網站,
畢竟你也不曉得對方用的是什麼瀏覽器,
搞不好現在還有人在用netscape也說不定
4F:→ chan15: 你要支援 IE6 就不要想什麼新技術了05/09 02:39
我的想法單純只是想說舊瀏覽器是不是都不支援反ajax的功能,
我不是說就因此不用新技術了
也就是我想做一個在新瀏覽器能夠用新技術、舊瀏覽器若不支援新技術就用舊技術的程式
(聊天室)
目的是想做一個跨瀏覽器,且新舊通吃的網站
你也不敢保證現在完全沒人在用舊瀏覽器吧?
所以那個舊瀏覽器的問題是我對舊瀏覽器支援範圍的疑問而已,
畢竟那個問題只是我順帶一問的而已
※ 編輯: banana2014 (101.139.126.63), 05/09/2016 07:11:23
5F:→ MOONRAKER: 毫 無 意 義 05/09 10:32
6F:→ MOONRAKER: 抱殘守缺還那麼敢講 賺錢用的網站都敢說不支援IE6 05/09 10:33
7F:→ MOONRAKER: gmail還不是有「我們將移除對舊版瀏覽器的支援」 05/09 10:35
8F:→ MOONRAKER: 這麼愛支援 那要不要支援Lynx 05/09 10:35
9F:→ MOONRAKER: 要不要做個無障礙AAA的聊天網站 記得申請認證喔 啾咪 05/09 10:36
10F:→ MOONRAKER: 對了不可以分站喔 因為無障礙規範認定那算歧視 05/09 10:37
11F:→ Kenqr: 有的瀏覽器不支援javascript和圖片,建議都不要使用 05/09 10:48
12F:→ dinos: lynx,w3m表示:勿忘我~ 05/09 12:05
13F:→ weiclin: 你願意支援超舊瀏覽器這一點,也不能說你是錯的啦 05/09 13:02
14F:→ weiclin: 只是一般會因為花費的成本太高,而效益又太低而放棄支援 05/09 13:02
15F:→ weiclin: 如果你只是練練功,那很好,加油,放手去做 05/09 13:03
16F:→ weiclin: 但若你是被要求這樣做,請先嘗試教育你的客戶/上司/老闆 05/09 13:05
17F:→ weiclin: 因為你不嘗試讓他們進步的話,之後還會有人被這樣要求 05/09 13:06
18F:→ weiclin: 那是一種為民除害的概念 05/09 13:07
20F:→ rickysu: 應該可以解決你的問題 05/09 13:07
21F:→ rickysu: 可以支援 Comet 以及 websocket 05/09 13:08
22F:推 shadowjohn: 遇到ie6可以試看看activex,總是有方法的啦...(煙) 05/09 19:54
23F:推 et69523820: Activex XD IE Only 剛好配IE6安全性低 Activex 在 05/09 22:16
24F:→ et69523820: 越高版本的IE 越多限制 蠻不好用的@@ 05/09 22:18
25F:推 ns1234: IE不是已經自我放棄了嗎..都出Edge了 只是沒人要用 05/10 00:09
26F:推 shadowjohn: 如果要寫到各版相容,就只是要會更多技巧 05/10 00:17
27F:→ shadowjohn: 搭配不同版本檢查作不同輸出 :) 還是寫得出來的 05/10 00:17
28F:→ shadowjohn: 但這樣不會讓你的掌聲變多就是了 05/10 00:18
29F:推 GALINE: 其實每幾秒送一次request這招沒那麼不好啦...看看尋夢園.. 05/15 01:14