如何让人们通过实时更新在同一表单上进行协作
How to let people collaborate on same form with real time updates?
我有一个html表单,其中包含一些链接到数据库行的字段,这些字段必须由不同的用户同时修改。
每次其中一个用户编辑输入字段时,它可能会调用 javascript onchange(或类似)函数来更新行中的特定列,但打开相同页面的其他用户在刷新页面之前看不到更改。我应该使用什么来在所有正在查看页面的设备上更改它?
后端是PHP/MySQL。
谢谢
您有办法将推送发送到后端服务器,但现在您需要从服务器获取拉取。
为此,您需要在客户端和服务器之间保持恒定的通信通道,以便从服务器获取实时更新。有多种选择:
- Websockets:TCP Websocket可用于服务器和客户端之间的实时通信。请参阅此线程以获取有关 PHP 中 websocket 支持的更多信息。
- 轮询(非常肮脏的方式):您可以频繁地从客户端轮询到服务器,以查看是否有任何更新。这种实现方式确实效率低下,根本不推荐使用,但是,由于某些应用程序在其系统中已经进行了轮询,如果您的系统已经在进行频繁的轮询,则可以附加查询以获取该轮询的表单状态。
有几种可能的方法。
-
让客户端中的 ajax 请求定期轮询 Web 服务器以检索数据。尽管取决于其实现方式,可能会有一些性能影响。
-
您可以从使用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,但这需要大量的知识。
- 可以't让我的if语句处理js中的html表单输入
- 如何使用WCF服务和javascript表单post上传.doc文件
- Javascript生成的表单未提交
- 如何使用javascript或html下载PDF格式的填写表单
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- Ajax发布表单序列化,发布引号'
- 多级HTML表单
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 在验证和发送邮件后更改联系人表单的 html
- jQuery表单添加不适用于下拉列表
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- Javascript更新孙窗口中的表单元素
- 解析javascript表单验证器
- 阻止表单元素提交
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 如何让人们通过实时更新在同一表单上进行协作