我必须更新一个div的状态,事情是这样的。在两台计算机上,必须打开相同的网页,并且我必须能够更改一台计算机中div的状态并自动更新另一台计算机而无需重新加载,我认为仅使用Ajax是不够的,因为我不想放置一种自动重新加载 div 的计时器,如果没有,当单击计算机 A 上的按钮时,它将在计数器 B 上更新显然使用 mysql 和 php。这可能吗?
最佳答案
你是对的,仅靠 AJAX 是不够的。
真正符合您的目的的是 WebSockets .
简而言之:
The WebSocket API is an advanced technology that makes it possible to open a two-way interactive communication session between the user's browser and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.
当然,了解如何WebSocket
Works 是强制性的,但是直接使用接口(interface)并处理它会浪费时间(除非出于学习目的),所以我建议使用 Puhser JS Library为此目的。
现在,步骤流程如下:
- 获取 Pusher 的免费 API key
- 包含客户 channel 库
- 打开与 channel 的连接
- 订阅 channel
- 监听事件
- 从您的服务器触发事件
我想重点关注步骤 5 和 6:
- 您从一个页面发出 AJAX 请求,并将该请求发送到服务器,现在您只需触发
<div>
的负责事件,而不是让服务器直接响应。元素更新,即第 6 步中需要发生的事情。 - 由于所有浏览器都订阅了负责的事件并正在监听,因此当第 6 步触发此事件时,所有浏览器都会收到该事件,因此在第 5 步中,您将执行 DOM 操作来更新
<div>
元素。
如果我的解释不好,我很抱歉,但别担心,因为它比看起来更容易,documentation以极好的方式解释了它。
关于php - 使用 php 和 ajax 更新 mysql 中的 div,无需通过 timmer 重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63973801/