如何让人们通过实时更新在同一表单上进行协作

How to let people collaborate on same form with real time updates?

本文关键字:表单 协作 实时更新      更新时间:2023-09-26

我有一个html表单,其中包含一些链接到数据库行的字段,这些字段必须由不同的用户同时修改。

每次其中一个用户编辑输入字段时,它可能会调用 javascript onchange(或类似)函数来更新行中的特定列,但打开相同页面的其他用户在刷新页面之前看不到更改。我应该使用什么来在所有正在查看页面的设备上更改它?

后端是PHP/MySQL。

谢谢

您有办法将推送发送到后端服务器,但现在您需要从服务器获取拉取。

为此,您需要在客户端和服务器之间保持恒定的通信通道,以便从服务器获取实时更新。有多种选择:

  • Websockets:TCP Websocket可用于服务器和客户端之间的实时通信。请参阅此线程以获取有关 PHP 中 websocket 支持的更多信息。
  • 轮询(非常肮脏的方式):您可以频繁地从客户端轮询到服务器,以查看是否有任何更新。这种实现方式确实效率低下,根本不推荐使用,但是,由于某些应用程序在其系统中已经进行了轮询,如果您的系统已经在进行频繁的轮询,则可以附加查询以获取该轮询的表单状态。

有几种可能的方法。

  1. 让客户端中的 ajax 请求定期轮询 Web 服务器以检索数据。尽管取决于其实现方式,可能会有一些性能影响。

  2. 您可以从使用WebSockets中受益。由于你使用的是PHP和MySQL,你可能会研究像Ratchet这样的东西。根据代码库的距离,您可以使用 node 实现 socket.io 的东西。

当您寻找一些已经存在的工具时,这可能适合您:https://fusion-tables-api-samples.googlecode.com/svn/trunk/FusionTablesFormSync/docs/reference.html

当您找不到符合您需求的任何内容时,您可以自己编写。因此你需要Ajax(将更改传输到服务器),它更容易与jQuery结合使用。http://www.w3schools.com/jquery/jquery_ajax_intro.asp你也可以用ajax从服务器获取数据,但你必须一直做请求,这不是很好。另一种选择是websocket,但这需要大量的知识。