如何在不刷新页面的情况下将新的HTML数据从服务器推送到浏览器

时间:2013-04-16 04:41:20

标签: html ajax html5 asynchronous websocket

我见过许多网站(例如facebook或堆栈溢出),它会在生成新数据时更新某些功能(例如,帖子上的新答案)。

假设有一篇新帖子被添加到博客中,有人在博客中看到它的时候,想法是自动将新帖子添加到博客而不刷新或让用户做任何动作

我想过每5秒左右执行一次AJAX调用,但这会对服务器发出太多请求,我看到我提到的网站(更新内容)没有提出任何新请求。 / p>

我真的不知道如何实现这一目标。 PHP和AJAX可以实现吗?我也听说过websockets。有任何想法吗? 感谢

4 个答案:

答案 0 :(得分:5)

好问题!有一些解决方案。

这个调用websockets有一个相对较新的解决方案。它符合HTML5标准 在其他语言上也有很多库。

其中一个是socket.io(javascript) - 它使您能够与服务器保持一致,低延迟的连接,以便在生成时接收信息。服务器端还有很多用于php,c和python的插件。

仅举几例:libwebsockets(c ++),pywebsockets(python)和jetty(javascript)

对于php:http://socketo.me/

访问此链接以获取更多信息:http://www.html5rocks.com/en/tutorials/websockets/basics/

答案 1 :(得分:2)

您可以使用HTML5 SSE。但那不是一个很好的解决方案。

您可以使用有助于长AJAX轮询的Comet服务器。查看Ajax Push Engine (APE)。它是Comet Server和Javascript框架的结合,可以实现AJAX-PUSH或实时流媒体。

喝彩! :)

答案 2 :(得分:1)

可以帮助您做到这一点的框架的一个例子是SignalR http://signalr.net/

这是特定于asp.net的

答案 3 :(得分:0)

那么,

如果您在PHP和开源世界中,可以考虑Node.Js,Socket.IO或NowJs

我在ASP.Net神奇世界,我喜欢SignalR。

相关问题