5

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

假设有一个新帖子添加到博客中,并且在那一刻有人在博客中查看它,这个想法是自动将新帖子添加到博客中,而无需刷新或让用户执行任何操作。

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

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

4

4 回答 4

5

好问题!有几个解决方案。

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

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

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

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

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

于 2013-04-16T04:43:43.413 回答
2

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

您可以使用有助于长 AJAX 轮询的 Comet 服务器。查看Ajax 推送引擎 (APE)。它是 Comet Server 和 Javascript 框架的组合,使 AJAX-PUSH 或实时流媒体成为可能。

干杯!:)

于 2013-04-16T04:54:45.783 回答
1

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

这是特定于 asp.net 的

于 2013-04-16T04:45:58.360 回答
0

出色地,

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

我在 ASP.Net Wonderworld 中,我喜欢 SignalR。

于 2013-04-16T05:26:16.313 回答