【问题标题】:How to push new HTML data from the server to the browser without refreshing the page如何在不刷新页面的情况下将新的 HTML 数据从服务器推送到浏览器
【发布时间】:2013-04-08 09:05:05
【问题描述】:

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

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

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

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

【问题讨论】:

标签: ajax html asynchronous websocket


【解决方案1】:

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

这个调用 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/

【讨论】:

  • 哇,有点新东西,你能给我更多的提示吗,我还是第一次听说。谢谢
【解决方案2】:

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

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

干杯! :)

【讨论】:

  • 为什么 HTML5 SSE 不是一个好主意?浏览器不支持?谢谢
【解决方案3】:

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

这是特定于 asp.net 的

【讨论】:

【解决方案4】:

嗯,

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

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

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 2020-08-20
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多