使用Ajax时检查客户端和服务器的同步状态

Checking sync state of client and server when using Ajax

本文关键字:服务器 同步 状态 客户端 Ajax 检查 使用      更新时间:2023-09-26

我有一个带有大订单表单的web应用程序:300多个项目金额输入字段,每个字段都有一个增加和减少金额的按钮。输入字段中的每个更改都通过Ajax发送到服务器。按钮是"去抖动"的:收集点击量,并在最后一次点击后200毫秒发送新的数量。现在看来,有些请求失败了,可能是由于网络条件不好,但也可能是服务器问题。这意味着显示的金额和存储在服务器上的金额不同我可以使用什么策略来保持客户端和服务器同步?目前我看到两种选择:

  • 客户端上的错误处理-当请求失败时,重新发送它(尝试次数最多)
  • 计算所有金额的校验和/散列,并将其与金额一起发送。如果服务器计算的金额不同,则会返回错误代码,并且所有字段内容都会发送到服务器

还有其他想法或建议吗?

您可以在客户端维护ChangeLog(要与服务器同步的记录的ID列表)(只有ID,而不是记录本身)。

然后,在同步过程中,确保服务器发回已成功处理记录的确认。

如果成功,请从变更日志中删除该记录。如果没有,它将保留,并将在下一个同步过程中重新发送。

这是SyncML标准使用的协议,可能适用于您的情况。