[問題] ajax聊天室最有效率的update方法…

看板PHP作者 (香蕉共和國)時間9年前 (2016/05/08 23:14), 9年前編輯推噓7(7022)
留言29則, 10人參與, 最新討論串1/2 (看更多)
這篇問題跟ajax和php都有關, 所以我同時在ajax板和php板都有張貼此問題 ---------- 我想用ajax來做一個簡單的聊天室 在update聊天訊息的部分我想了很久 因為我不曉得該怎麼讓伺服器端(伺服器端語言:PHP)在一有新訊息出現時, 自動傳更新給客戶端 也就是不要用「客戶端每隔5秒發送request到伺服器端檢查是否有新訊息」的這種方式 因為這樣太沒效率了 而且會浪費不必要的資源 如果遲遲沒有新訊息更新怎麼辦呢? 那是不是就一直讓電腦一直做不必要的檢查呢? 所以有沒有那種「伺服器給客戶端即時的更新資料」 而不是「客戶端每隔一段時間檢查伺服器是否有更新」的程式呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.139.126.63 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1462720462.A.11A.html

05/08 23:41, , 1F
(1)comet (2)socket
05/08 23:41, 1F

05/09 00:08, , 2F
comet
05/09 00:08, 2F
謝謝,剛剛我查了一個比comet還要好的,叫websocket 它好像要把通訊協定改成「ws://」才能連線, 想請問一下我還需要在伺服器灌什麼嗎? 因為我的網站是租外面的虛擬主機, 不曉得他們的主機有沒有支援這個通訊協定 也不曉得需不需要灌什麼東西? 我對websocket不是很懂, 有些舊的瀏覽器好像也不支援這項技術, 所以要讓舊瀏覽器(如IE6, Netscape)也能使用這個聊天室程式, 是不是還是只能用輪詢的方式更新資訊? 謝謝 ※ 編輯: banana2014 (101.139.126.63), 05/09/2016 00:24:06

05/09 00:38, , 3F
netscape開什麼玩笑 你到底想做什麼網站
05/09 00:38, 3F
我想做一個在所有瀏覽器都能正常顯示的網站, google都能在所有瀏覽器正常顯示了, 我想應該做出一個全方位跨瀏覽器的網站, 畢竟你也不曉得對方用的是什麼瀏覽器, 搞不好現在還有人在用netscape也說不定

05/09 02:39, , 4F
你要支援 IE6 就不要想什麼新技術了
05/09 02:39, 4F
我的想法單純只是想說舊瀏覽器是不是都不支援反ajax的功能, 我不是說就因此不用新技術了 也就是我想做一個在新瀏覽器能夠用新技術、舊瀏覽器若不支援新技術就用舊技術的程式 (聊天室) 目的是想做一個跨瀏覽器,且新舊通吃的網站 你也不敢保證現在完全沒人在用舊瀏覽器吧? 所以那個舊瀏覽器的問題是我對舊瀏覽器支援範圍的疑問而已, 畢竟那個問題只是我順帶一問的而已 ※ 編輯: banana2014 (101.139.126.63), 05/09/2016 07:11:23

05/09 10:32, , 5F
毫 無 意 義
05/09 10:32, 5F

05/09 10:33, , 6F
抱殘守缺還那麼敢講 賺錢用的網站都敢說不支援IE6
05/09 10:33, 6F

05/09 10:35, , 7F
gmail還不是有「我們將移除對舊版瀏覽器的支援」
05/09 10:35, 7F

05/09 10:35, , 8F
這麼愛支援 那要不要支援Lynx
05/09 10:35, 8F

05/09 10:36, , 9F
要不要做個無障礙AAA的聊天網站 記得申請認證喔 啾咪
05/09 10:36, 9F

05/09 10:37, , 10F
對了不可以分站喔 因為無障礙規範認定那算歧視
05/09 10:37, 10F

05/09 10:48, , 11F
有的瀏覽器不支援javascript和圖片,建議都不要使用
05/09 10:48, 11F

05/09 12:05, , 12F
lynx,w3m表示:勿忘我~
05/09 12:05, 12F

05/09 13:02, , 13F
你願意支援超舊瀏覽器這一點,也不能說你是錯的啦
05/09 13:02, 13F

05/09 13:02, , 14F
只是一般會因為花費的成本太高,而效益又太低而放棄支援
05/09 13:02, 14F

05/09 13:03, , 15F
如果你只是練練功,那很好,加油,放手去做
05/09 13:03, 15F

05/09 13:05, , 16F
但若你是被要求這樣做,請先嘗試教育你的客戶/上司/老闆
05/09 13:05, 16F

05/09 13:06, , 17F
因為你不嘗試讓他們進步的話,之後還會有人被這樣要求
05/09 13:06, 17F

05/09 13:07, , 18F
那是一種為民除害的概念
05/09 13:07, 18F

05/09 13:07, , 19F
05/09 13:07, 19F

05/09 13:07, , 20F
應該可以解決你的問題
05/09 13:07, 20F

05/09 13:08, , 21F
可以支援 Comet 以及 websocket
05/09 13:08, 21F

05/09 19:54, , 22F
遇到ie6可以試看看activex,總是有方法的啦...(煙)
05/09 19:54, 22F

05/09 22:16, , 23F
Activex XD IE Only 剛好配IE6安全性低 Activex 在
05/09 22:16, 23F

05/09 22:18, , 24F
越高版本的IE 越多限制 蠻不好用的@@
05/09 22:18, 24F

05/10 00:09, , 25F
IE不是已經自我放棄了嗎..都出Edge了 只是沒人要用
05/10 00:09, 25F

05/10 00:17, , 26F
如果要寫到各版相容,就只是要會更多技巧
05/10 00:17, 26F

05/10 00:17, , 27F
搭配不同版本檢查作不同輸出 :) 還是寫得出來的
05/10 00:17, 27F

05/10 00:18, , 28F
但這樣不會讓你的掌聲變多就是了
05/10 00:18, 28F

05/15 01:14, , 29F
其實每幾秒送一次request這招沒那麼不好啦...看看尋夢園..
05/15 01:14, 29F
文章代碼(AID): #1NBrVE4Q (PHP)
文章代碼(AID): #1NBrVE4Q (PHP)