在弱网环境下,应用可以让操作“看起来立即完成”,却不能保证数据同时到达服务器和其他人的设备。比如外勤人员修改工单后,手机可以先保存并显示新内容;但只要上传尚未成功,其他人看到的就可能仍是旧版本。把本地保存称为“实时同步”,会掩盖协作中最关键的时间差。
判断同步能力,要分清三个时刻:操作何时在本机生效,服务器何时确认收到,其他设备何时取得更新。网络不稳定时,这三个时刻无法始终重合。传输中断后还可能出现“数据已送达,但手机未收到确认”的情况,因此重试不能简单地把同一次修改再执行一遍;系统需要识别重复提交,并让用户看得出哪些修改仍在等待同步。
多人修改同一张工单,问题会更复杂。如果两台设备都依据旧内容作了修改,恢复网络后必须有冲突规则:按修改时间或角色优先级裁决,允许不同字段分别保留,或者提示人员处理。选哪一种取决于业务含义,不能仅凭“同步成功”四个字代替决定。尤其是会影响后续作业的字段,悄悄覆盖往往比明确提示更危险。
因此,弱网需求不宜写成“任何场景实时同步”,而应约定可检查的行为:断网时哪些操作可继续、哪些必须联网;未同步的数据如何标识;重连后如何重试;冲突由谁裁决、用户会看到什么。真正可靠的目标不是消除网络造成的延迟,而是在延迟和冲突发生时,仍能知道数据处于什么状态、最终该以哪个版本为准。