我有一个带有大订单的Web应用程序:300个以上的项目金额输入字段,每个字段都有一个按钮来增加和减少金额。输入字段中的每个更改都通过Ajax发送到服务器。按钮被“去抖动”:收集点击,最后一次点击后200毫秒发送新金额。现在似乎有些请求失败,可能是由于网络状况不佳,但它也可能是服务器问题。这意味着显示的数量和存储在服务器上的数量不同。 我可以使用哪些策略来保持客户端和服务器同步?目前我看到两个选择:
还有其他想法或建议吗?
答案 0 :(得分:2)
您可以在客户端维护一个ChangeLog(与服务器同步的记录ID列表)(只是ID,而不是记录本身)。
然后在同步过程中确保服务器发回成功处理记录的确认。
如果成功,请从ChangeLog中删除记录。如果没有,它将保留并在下一个同步过程中重新发送。
这是SyncML标准使用的协议,可能适用于您的情况。