Php 使用数据库中断逐个更新单元格

Php 使用数据库中断逐个更新单元格,php,jquery,ajax,timer,user-experience,Php,Jquery,Ajax,Timer,User Experience,出于某种目的,我有一个类似Excel的在线电子表格,它几乎完成了,工作也很完美,但我面临着一个问题,希望纠正 你可以在那里看到电子表格 问题是,有一次有1个以上的用户在使用此电子表格,如果一个人修改了任何单元格,另一个人在其电子表格中都不会得到更新,因此我计划使用一个setTimeout()函数来调用一个函数,该函数将从数据库中更新工作表中的每个单元格。” 现在的问题是有40行,每行有来自数据库的10条记录,400条记录需要每“n”秒更新一次,因此它会挂起浏览器和UE。我想我可以创建一个计时器,

出于某种目的,我有一个类似Excel的在线电子表格,它几乎完成了,工作也很完美,但我面临着一个问题,希望纠正

你可以在那里看到电子表格

问题是,有一次有1个以上的用户在使用此电子表格,如果一个人修改了任何单元格,另一个人在其电子表格中都不会得到更新,因此我计划使用一个setTimeout()函数来调用一个函数,该函数将从数据库中更新工作表中的每个单元格。”

现在的问题是有40行,每行有来自数据库的10条记录,400条记录需要每“n”秒更新一次,因此它会挂起浏览器和UE。我想我可以创建一个计时器,比如更新一个单元格,然后在几秒钟后移动到另一个单元格,然后在链中的几秒钟后更新另一个单元格

您可以想象,当我更新第一个单元格时,当它完成更新时,它将为它旁边的单元格调用一个函数,依此类推


那么您将为它编写什么伪jquery代码呢

正如Jonathun Kuhn在评论中提到的,最好只跟踪需要更改的单元格,并相应地更新它们

取决于数据库的设置方式,将取决于如何跟踪已更改的内容。但我的第一个想法是有一个表,记录每行的一个更改以及更改发生的时间戳。然后,您可以每隔“n”秒从浏览器运行一个函数,该函数使用一些ajax来请求自上次请求以来的所有更改(可以跟踪上次更新的唯一id,按时间戳排序并获取所有新内容)

这将有助于加快速度,因为它只会花时间更新实际需要它的单元格


但是,作为免责声明,第二个用户很可能在屏幕上显示第一次编辑之前更新单元格。(假设两个用户几乎同时编辑一个单元格,可能第二个用户在第一次编辑后的几毫秒内启动了“保存”。)我能想到的处理此问题的最佳方法是,如果发现第二个用户在上一次编辑后正在非常快地编辑某些内容,则向其显示警告,他们可能正在覆盖数据。

为什么要让它更新页面中的每个“单元格”?为什么不只更新已更改的单元格?如何在不调用数据库的情况下实现这一点?