javascript - 聊天应用程序如何在没有重复 ajax 调用的情况下工作?

标签 javascript php database chat

<分区>

我尝试在 Php 中创建一个聊天应用程序,我使用了以下逻辑。

1.从用户 1 获取输入并将其插入到表中。

2.每 5 秒运行一次 ajax 函数以在表中查找新条目并显示给用户 2。

3.反之亦然。

这个程序真的太慢了​​,浏览器经常挂起。

实时聊天应用程序实际上是如何工作的?数据库能不能在前端自动触发一个事件,这样我们就不用每隔5秒就去打一次数据库?如果是,它是如何完成的?

谢谢。

最佳答案

该策略称为轮询,它在 2000 年代初期对我们很有帮助,但它已经过时了。

更好的增强是长轮询。我们请求一个网页,但服务器不会立即响应,而是等到有可用的新信息。客户端收到新信息后,立即发送新请求等。

现在在 2015 年,我们有了 HTML5 WebsocketsHTML5 SSE(服务器发送事件),它允许客户端和服务器在任何时候(在任何一个上)发送数据侧)可用。

您可以考虑使用 node.js (javascript) 或 Ratchet (PHP) 在您的服务器上。

关于javascript - 聊天应用程序如何在没有重复 ajax 调用的情况下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32545504/

相关文章:

javascript - 与构造函数的奇怪行为

javascript - BAD Reuqest 无法创建和填充列表类型 Microsoft.AspNetCore.Http.IFormFileCollection

php - 来自 mysql 的长轮询信息不起作用

mysql - 如何将一个 SQL 数据库拆分成多个文件(稍后重新组合)?

mysql - 标签系统的最佳模型

mysql - 使用 WHERE 和 AND 参数的 LEFT JOIN

javascript - 添加涉及 PHP 的 onclick jQuery 输入

javascript - Action 不会触发 React + Redux 中的 reducer

php - 如何在yii中传递重定向参数

javascript - JQuery 摇动效果不适用于 php 表单验证