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

问题描述 投票:5回答:4

我已经看到许多网站(例如Facebook或堆栈溢出)将在生成新数据时更新某些功能(例如,帖子上的新答案)。

可以说,博客中添加了一个新帖子,当时有人在博客中查看它,其目的是自动将新帖子添加到博客中,而无需刷新或让用户执行任何操作。

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

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

html ajax html5 asynchronous websocket
4个回答
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/


2
投票

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

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

干杯! :)


1
投票

可以帮助您完成此任务的框架的一个示例是SignalR http://signalr.net/

这是asp.net特定的


0
投票

好,

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

我在ASP.Net wonderworld,我喜欢SignalR。

© www.soinside.com 2019 - 2024. All rights reserved.