Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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时检查客户端和服务器的同步状态_Javascript_Ajax_Synchronization_Client Server - Fatal编程技术网

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

Javascript 使用Ajax时检查客户端和服务器的同步状态,javascript,ajax,synchronization,client-server,Javascript,Ajax,Synchronization,Client Server,我有一个带有大订单的web应用程序:300多个输入字段用于输入项目金额,每个字段都有一个按钮用于增加和减少金额。输入字段中的每个更改都通过Ajax发送到服务器。按钮为“取消公告”:收集点击,并在最后一次点击200毫秒后发送新金额。现在看来,有些请求失败了,可能是由于糟糕的网络条件,但也可能是服务器问题。这意味着显示的金额与服务器上存储的金额不同我可以使用什么策略来保持客户端和服务器同步?目前我看到两种选择: 客户端上的错误处理-当请求失败时,重新发送(最大尝试次数) 计算所有金额的校验和/哈希

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

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

还有其他想法或建议吗?

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

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

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

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