【问题标题】:Update div, in mysql with php and ajax, without reloading by timmer使用 php 和 ajax 在 mysql 中更新 div,无需通过 timmer 重新加载
【发布时间】:2020-09-19 22:07:52
【问题描述】:

我必须更新一个 div 的状态,事情是这样的。在两台计算机上,必须打开同一个网页,并且我必须能够在其中一个中更改一个 div 的状态并在另一个中自动更新它而无需重新加载,我认为仅 Ajax 是不够的,因为我不想放置一种自动重新加载 div 的计时器,如果没有,当单击计算机 A 上的按钮时,它将在计数器 B 上更新显然使用 mysql 和 php。有可能吗?

【问题讨论】:

  • 我认为它必须使用间隔 ajax 来显示两台计算机使用服务器批处理获取数据并在 Com A 更新 div 时为客户端计算机写入 textfile(json) -> 将数据更新到数据库,Com B (间隔脚本发布 ajax 以获取文本文件中的 json obj 以通过 id 附加 div 标签)
  • @PeangPeang 但他不想使用计时器

标签: php jquery mysql ajax


【解决方案1】:

您说得对,仅 AJAX 是不够的。
真正为您服务的是WebSockets
简而言之:

WebSocket API 是一种先进的技术,可以 打开用户的双向交互通信会话 浏览器和服务器。使用此 API,您可以将消息发送到服务器 并接收事件驱动的响应,而无需轮询服务器 回复。

当然,了解WebSocket 的工作原理是必须的,但是直接使用接口并处理它会浪费时间(除非出于学习目的),因此我建议为此使用Puhser JS Library

现在,步骤流程如下:

  1. 获取 Pusher 的免费 API 密钥
  2. 包括客户端频道库
  3. 打开与频道的连接
  4. 订阅频道
  5. 监听事件
  6. 从您的服务器触发事件​​

我想专注于第 5 步和第 6 步:

  • 您从一个页面发出 AJAX 请求并将此请求发送到服务器,现在您无需让服务器直接响应,而是触发<div> 元素更新的负责事件,这需要在步骤 6 中发生。
  • 由于所有浏览器都订阅了负责的事件并正在监听,当第 6 步触发此事件时,所有浏览器都会收到它,在第 5 步中,您将执行 DOM 操作以更新 <div> 元素。

如果我的解释不好,我很抱歉,但请不要担心,因为它比看起来更容易,documentation 以极好的方式解释它。

【讨论】:

  • 我忘了这种方式,这是最好的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
  • 2012-06-19
  • 1970-01-01
  • 2013-05-28
  • 2016-08-29
  • 1970-01-01
  • 2013-09-01
相关资源
最近更新 更多