2013-07-13 47 views
1

我正在使用PHP和JQuery的網站上工作。保持頁面連接的最佳方法?

如果從數據庫中獲取新數據,我想自動更新頁面內容。

我試着用JQuery來做這件事,唯一的辦法是ajax輪詢,這需要我每隔一段時間設置一次間隔來調用頁面。

我也看了,我可以使用PHP棘輪的WebSocket或Node.js的

我不想使用Ajax輪詢,因爲大量的數據,必須從數據庫中爲每個用戶抓握。我也不知道Ratchet或node.js是如何工作的,哪一個是最好的和最簡單的。

有沒有其他辦法可以做到這一點,我應該去哪一個?

和平

+0

如果您只需要從服務器接收數據,我更願意使用[Server-Sent Events](http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html #服務器發送的事件)(HTML5的新功能)。檢查這個例子:https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events – 2013-07-13 01:37:34

+0

所以這不適用於聊天應用程序例如? –

+0

不,SSE是單向連接,只能從服務器接收數據,但不能發送它... – 2013-07-13 10:13:48

回答

2

如果您還沒有做留言之前會有一個學習曲線,不管你去(只是擡起頭)的技術。一個長期運行的應用程序將始終運行,您將處理所有連接的客戶端。這與您的標準網站非常不同,每個連接都位於其自己的服務器端腳本內,並在完成時退出。

如果PHP是您最舒服的語言,Ratchet可能會更容易接受,因爲它完全是PHP。然而,作爲PHP,最多可能會有5000個同時連接的用戶。其他語言有更高的限制。

要考慮的另一個範例是您可能不想不斷地從數據庫中讀取更改。相反,當發生某些事情時,我會假設用戶執行某些操作並寫入數據庫,因爲這種情況下您還會將相同的數據推送到連接的客戶端。