我已经看到许多网站(例如Facebook或堆栈溢出)将在生成新数据时更新某些功能(例如,帖子上的新答案)。
可以说,博客中添加了一个新帖子,当时有人在博客中查看它,其目的是自动将新帖子添加到博客中,而无需刷新或让用户执行任何操作。
我曾想过每5秒左右执行一次AJAX调用,但这会对服务器发出太多请求,我看到我提到的网站(更新内容)没有提出任何新请求。
我真的不知道如何实现这一目标。 PHP和AJAX可以实现吗? 我也听说过websockets。 有任何想法吗? 谢谢
好问题! 有一些解决方案。
这个调用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/
您可以使用HTML5 SSE 。 但那不是一个很好的解决方案。
您可以使用有助于Long AJAX轮询的Comet服务器。 查看Ajax Push Engine(APE) 。 它是Comet Server和Javascript框架的组合,可以实现AJAX-PUSH或实时流。
干杯! :)
可以帮助您完成此任务的框架的一个示例是SignalR http://signalr.net/
这是asp.net特定的
好,
如果您在PHP和开源世界中,可以考虑Node.Js,Socket.IO或NowJs
我在ASP.Net wonderworld,我喜欢SignalR。