2013-04-16 80 views
4

我見過很多網站(例如facebook或堆棧溢出),它們會在生成新數據時更新某些功能(例如, )。如何在不刷新頁面的情況下將新的HTML數據從服務器推送到瀏覽器

假設有一篇新文章被添加到博客中,並且當時有人在博客中查看它,這個想法是自動將新博文添加到博客而不刷新或讓用戶執行任何操作行動。

我曾經想過每5秒左右執行一次AJAX調用,但是這會對服務器提出太多請求,而且我看到我提到的網站(哪些續訂內容)沒有提出任何新請求。

我真的不知道如何做到這一點。這可能與PHP和AJAX?我也聽說過websocket。有任何想法嗎? 謝謝

+0

可能重複[有什麼方法可以將數據從Web服務器推送到瀏覽器?](https://stackoverflow.com/questions/19995/is-there-some-way-to-push-data-from-網絡服務器到瀏覽器) – Suma

回答

5

偉大的問題!有幾個解決方案。

這個調用websockets有一個相對較新的解決方案。這是在HTML5標準和 也有很多其他語言的庫。

其中之一是sockets.io(javascript) - 它使您能夠與服務器保持一致的低延遲連接,以便在生成時接收信息。還有很多用於服務器端的php,c和python插件。

僅舉幾例:libwebsockets(C++),pywebsockets(蟒蛇),以及碼頭(JavaScript)的

而對於PHP:http://socketo.me/

訪問此鏈接的詳細信息:http://www.html5rocks.com/en/tutorials/websockets/basics/

+0

哇,有點新的調查,你可以給我更多的提示,這是我第一次聽到它。謝謝 – multimediaxp

1

一一個框架的例子可以幫助你做到這一點SignalR http://signalr.net/

這是asp.net特定的雖然

+0

有沒有PHP解決方案?謝謝 – multimediaxp

+0

我在上面的回答中添加了一個php庫的鏈接 – tay10r

+0

http://stackoverflow.com/questions/5753674/php-best-way-to-push-data-from-server-to-clients – TGH

2

您可以使用HTML5 SSE。但這不是一個很好的解決方案。

您可以使用Comet服務器來幫助進行Long AJAX輪詢。檢查出Ajax Push Engine (APE)。它是Comet Server和Javascript框架的組合,可以實現AJAX-PUSH或實時流式傳輸。

乾杯! :)

+0

爲什麼選擇HTML5 SSE不是一個好主意嗎?不受資源管理器支持?謝謝 – multimediaxp

0

好,

如果你是在PHP和開源的世界裏,你可以考慮的Node.js,Socket.IO或NowJs

我在ASP.Net的WonderWorld,我愛SignalR。

相關問題