Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax成功后刷新html表_Javascript_Html_Ajax - Fatal编程技术网

Javascript ajax成功后刷新html表

Javascript ajax成功后刷新html表,javascript,html,ajax,Javascript,Html,Ajax,当我们使用ajax对数据库表执行破坏性操作(insert/update/delete)时,DOM必须反映这一变化。我看到两种常用的方法 当破坏性数据库操作成功时,操作html表中的行以反映更改 当破坏性数据库操作成功时,通过发出另一个ajax请求刷新html表 假设用户A和B正在访问一个包含5行的表。然后A删除第一行,而B删除第二行。使用DOM操纵方法,A将看不到第二行被删除,而B将看不到第一行被删除。这个问题可以通过刷新方法消除,但是两个用户只有在自己执行操作时才能看到完整的更新 哪种方法

当我们使用ajax对数据库表执行破坏性操作(insert/update/delete)时,DOM必须反映这一变化。我看到两种常用的方法

  • 当破坏性数据库操作成功时,操作html表中的行以反映更改
  • 当破坏性数据库操作成功时,通过发出另一个ajax请求刷新html表
假设用户A和B正在访问一个包含5行的表。然后A删除第一行,而B删除第二行。使用DOM操纵方法,A将看不到第二行被删除,而B将看不到第一行被删除。这个问题可以通过刷新方法消除,但是两个用户只有在自己执行操作时才能看到完整的更新


哪种方法最好?

简单的“刷新”方法(选项2)无法消除该问题

假设A和B都在查看表格。现在A删除了一行,如果刷新A的页面,它将仅在A的视图窗口中更新。但在B上运行的代码在该行被删除时不会意识到这一事实。只有在按照选项2删除一行或明显刷新浏览器后,他才会看到更新

一个快速的解决方案是在固定的时间间隔内使用Ajax请求刷新表数据。例如:5秒

为了让表在任何时候都能为每个用户真实地反映数据库的实时数据,您必须使用websocket。为此,您需要实时服务器和客户端


您可以通过某种方式实现整个web应用程序的一部分或功能,使该部分实时化,同时保持另一部分使用现有的技术堆栈。

正是出于您所述的原因,选项B更好。谢谢。我很好奇,为什么人们总是使用上述两种方法,而不是每次都使用websocket?