javascript - 我多久可以让 ajax 请求一次新数据?

标签 javascript ajax user-interface

我正在设计一个协作系统,多个用户可以在其中编辑同一个文档,很像 googledocs,我猜是“搜索建议”,但绝不是高级的。

我的问题是,我的设计可行吗?我知道足够的 php/ajax 来设计这个,使用 jQuery 作为 ajax 部分。但是我从来没有做过这样的系统,因此设计可能存在很大的缺陷。

网页的可编辑部分是一个表格,其中可以编辑某些单元格(同样很像 google docs 电子表格)。

理论上这会起作用,每当更改表格单元格时,更改都会存储在历史记录中,并且每隔 1000 毫秒(在最后一个帖子成功返回后)我将单元格更改发布到服务器

同时,另一个 ajax 函数轮询服务器(也是在最后一次调用成功返回后每 1000 毫秒)并请求对所有单元格所做更改的列表。

这是谷歌的简单方法吗?

最佳答案

这是一个值得商榷的话题,大多数解决方案都取决于要求和用例,而不是什么是“正确的”。更复杂的解决方案之一是使用信号量:

http://en.wikipedia.org/wiki/Semaphore_(programming)

铁路信号量标志: http://en.wikipedia.org/wiki/Railway_semaphore_signal

也就是说,在您的情况下,我怀疑应该使用“最后写入的值”。只需让每个编辑在服务器上排队,然后应用到它的单元格。显然,在某些情况下数据会被不当覆盖,但这正是人为因素发挥作用的地方。

您可以选择检测两个用户何时聚焦并编辑同一个单元格——发生这种情况时,向每个用户发送通知,告知他们的更改可能与另一个用户冲突。攻击性最低的用户会退缩并去做其他事情。显然还有更多情况,例如批量编辑,但同样,这完全取决于您的要求。

关于javascript - 我多久可以让 ajax 请求一次新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3583751/

相关文章:

javascript - 为什么ajax不向 Controller 发送数据?

c++ - MFC - 显示模态对话框时主窗口变暗

javascript - 使用 javascript 读取 jpeg xmp 元数据

javascript - Facebook 连接集成不再起作用

javascript - 来自另一个类的 Angular 4 设置属性

ajax - 使用QtWebKit时如何知道网页何时加载?

javascript - 如何安装JW Player 7.1

jquery - $.ajax post、knockout 和 web api

java - 如何在eclipse中装饰InputDialog

jquery - 如何在 jquery ui 主题风格中显示工具提示