如何让人们在同一表格上进行实时更新?

时间:2016-03-05 16:33:49

标签: javascript php mysql html5 forms

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

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

后端是PHP / MySQL。

谢谢

3 个答案:

答案 0 :(得分:0)

当您查找一些已有的工具时,这可能适合您: 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,但这需要很多知识。

答案 1 :(得分:0)

有几种可能的方法。

  1. 在客户端中有一个ajax请求定期轮询Web服务器以检索数据。虽然取决于如何实施,但可能会有一些性能后果。

  2. 您可以从使用WebSockets中受益。由于您使用的是PHP和MySQL,因此您可能会查看Ratchet之类的内容。根据代码库的距离,您可以使用节点使用socket.io实现某些功能。

答案 2 :(得分:0)

您可以将推送发送到后端服务器,但现在您需要从服务器获取数据。

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

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