使用Ajax时检查客户端和服务器的同步状态
Checking sync state of client and server when using Ajax
我有一个带有大订单表单的web应用程序:300多个项目金额输入字段,每个字段都有一个增加和减少金额的按钮。输入字段中的每个更改都通过Ajax发送到服务器。按钮是"去抖动"的:收集点击量,并在最后一次点击后200毫秒发送新的数量。现在看来,有些请求失败了,可能是由于网络条件不好,但也可能是服务器问题。这意味着显示的金额和存储在服务器上的金额不同我可以使用什么策略来保持客户端和服务器同步?目前我看到两种选择:
- 客户端上的错误处理-当请求失败时,重新发送它(尝试次数最多)
- 计算所有金额的校验和/散列,并将其与金额一起发送。如果服务器计算的金额不同,则会返回错误代码,并且所有字段内容都会发送到服务器
还有其他想法或建议吗?
您可以在客户端维护ChangeLog(要与服务器同步的记录的ID列表)(只有ID,而不是记录本身)。
然后,在同步过程中,确保服务器发回已成功处理记录的确认。
如果成功,请从变更日志中删除该记录。如果没有,它将保留,并将在下一个同步过程中重新发送。
这是SyncML标准使用的协议,可能适用于您的情况。
相关文章:
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 如何将Knockout.JS与服务器已经在DOM中呈现的数据同步
- jQuery/JS:从服务器同步读取文本文件
- 将数据从本地SQL Server同步到Internet上的MySQL Server(实时服务器)
- 如何执行“;“同步”;javascript调用服务器而不锁定浏览器
- 同步客户端和服务器端时间
- jquery 倒计时服务器同步不起作用
- 创建一个自动与服务器cordova javascript同步数据的应用程序
- 如何将javascript倒数计时器与服务器同步
- 将本地数据库与电话间隙上的服务器同步
- 客户端预测保持移动与服务器同步
- metrojs用户权限未与服务器同步
- 如何将客户端网页计时器与服务器同步
- 如何判断Meteor minimongo何时与mongo服务器同步
- 在AngularJS中与服务器同步时,保留表单上的浏览器状态
- 术语:将脚本资源与术语服务器同步
- 当重新连接时,Firebase JavaScript API是否与服务器同步?
- 如何在用户离开页面之前与服务器同步并清除会话
- 将两个客户端JavaScript计时器与服务器同步
- 如何使Angular.js应用程序离线,并在可用时进行服务器同步