在 Ceum 移动应用上,即使设备断开连接,你仍可继续作业。缓存数据保持可读,少数界面保持可编辑,而你所做的任何更改都会被排入队列,并在重新上线后自动重放。这是移动设备专属的能力 — 网页应用假设有持续的连接。
离线时可用的功能
- 读取缓存数据 — 你已加载过的页面会继续显示其最后已知的数据,而不会变成空白。
- 添加与编辑交易及时间记录 — 这两个界面在离线时保持完全可写入。你的更改会立即应用到屏幕上的列表中,并排入队列以稍后同步。
- 其他一切变为只读 — 其他界面(客户、项目、任务、设置等)仍会显示缓存数据,但其创建/编辑/删除控件在离线时会被禁用,并附上简短提示说明原因。这可避免排入无法可靠对账的更改。
重启后仍会保留的内容
应用会在设备上保留一份最重要数据的加密快照,因此离线时冷启动仍能加载真实数据,而非空白页面。
- 快照会在应用离开前台时写入(而非每次更改时),并在启动时还原一次。
- 它在静置时以每台设备专属的密钥加密,因此缓存副本在设备之外无法读取。
- 它刻意保持精简 — 只保存你的设置、主要列表入口(工作列表、交易、时间记录、订阅)、快速清单,以及活动中的计时器 — 而非你浏览过的一切。详情、日历叠层、洞察、邮件与搜索会在你打开那些页面时重新拉取。
等待同步的更改
你离线所做的更改会进入一个可留存的队列(“outbox”),并能在应用重启后存留。此队列会智能地合并多余的工作,让服务器只会看到净结果:
- 编辑你离线创建的内容会合并进该待处理的创建 — 它仍会以单条新记录的形式同步。
- 删除你离线创建的内容会将其整个丢弃;任何内容都不会到达服务器。
- 对同一记录的重复编辑会合并为“最后写入者胜出”的结果。
- 删除某记录会丢弃任何先前排入队列、针对它的编辑,而重复的删除会被忽略。
离线横幅
在你登录期间,导航栏上方会出现一条状态栏:
- 离线 — 说明你已断开连接,以及若有任何内容排入队列,重新连接时将同步多少更改。
- 同步中 — 在队列重放时短暂显示。
- 需要注意 — 在同步遇到无法自行解决的情况时出现。点按即可打开解决工作表(见下文)。
当你在线且队列为空、干净时,横幅会隐藏。
重新连接时的同步
队列会在连接恢复时、应用回到前台时,以及启动时自动清空。每条排入队列的更改都会对最新的服务器状态重放。多数更改会静默应用,并会收到简短确认,告知同步了多少条。清空后,应用会拉取权威的服务器数据,使你的列表反映真实状态。
解决冲突
有些更改无法盲目应用 — 在你离线期间服务器可能已变更。这些会呈现在 解决工作表 中,从“需要注意”横幅打开。由于该工作表由队列本身驱动,它能在解决过程中应用重启后存留。
- 可能的重复 — 一条排入队列的新交易若与近期的服务器交易高度相似,会被保留以便你决定。选择 保留 仍予以添加,或选择 丢弃 予以去除。
- 服务器上已变更 — 对某记录的离线编辑,若该记录自你离线后在服务器上已被修改(或删除),会被保留。选择 覆盖 以推送你的版本,或选择 放弃我的更改 以保留服务器的版本。
- 已丢弃 — 真正冲突的更改(例如,会与既有时间记录重叠的时间记录)会连同说明一并丢弃。查看原因并将其 关闭。
未被保留的冲突 — 例如暂时性的服务器错误 — 只会留在队列中并于下次同步时重试,因此短暂的故障绝不会丢失你的更改。