javascript - Web 应用程序的推送通知

标签 javascript php ajax web-applications web

在 Web 应用程序中推送通知的有效方式是什么?

我有一个 Web 应用程序,我希望它通过推送通知为每个特定用户动态刷新,而不是定期从服务器提取数据。

最佳答案

最好的并不存在,但您有一些选择来完成它。

Web 套接字(IMO,我推荐这种方法)

第一个也是最有效的方法是在 HTML5 页面中使用网络套接字。您可以使用 PHP 中的库来完成此操作,或者您可以使用带有 Socket.io 或类似工具的 Node.js 服务器来处理您网站的前端(我在在线产品中经常看到这种情况)。

注意:当使用 web 套接字时,客户端和服务器将相互发送 TTL(生存时间)消息,这是一个非常非常小的消息,带有小 header ,只是为了保持连接打开和事件。

短轮询

第二个是短轮询,在这里你每 X 秒或分钟向服务器发出一个 ajax 请求(取决于你想要刷新数据的频率)。 注意:这是效率最低的,因为您向服务器打开大量请求只是为了检查是否有新数据

长轮询

第三个是长轮询,这个类似于短轮询,但您保持单个连接打开较长时间,并在有数据要发送到客户端时从服务器获得响应。这消耗较少,但您仍然保持客户端和服务器之间的永久连接打开。

关于javascript - Web 应用程序的推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907024/

相关文章:

javascript - 成功后的 XMLHttpRequest 操作

javascript - 这个错误有什么建议吗?未捕获的类型错误 : $. ajax 不是函数

javascript - 如何在 PAC(代理自动配置)文件中验证 Socks 5 代理

javascript - 在特定的 Div 中执行 Javascript 函数

php - 类中的 mysql 查询方法返回错误值( bool 类型而不是集合)

php - foreach 循环中的水平 div 布局

javascript - 你能帮我用几行来简化一段 JavaScript 代码吗?

javascript - 在 $.post 中创建动态变量赋值 - JQuery

caching - 如何使用 Nginx 禁用 PHP 5 (FPM) 的代码缓存?

php - 将数据从ajax传递到php