跳转到内容
现场检验

无互联网时如何安全保存定期检查记录?

VizyonTech 编辑部 6 分钟阅读 全部现场检验文章
佩戴防护装备的专业人员在无网络的工业现场使用平板记录定期检验结果

在无网络的现场无损采集定期检查数据、监控发送队列并在连接恢复后无重复记录地同步的实施指南。

简要说明:没有网络时如何保存检查记录?

将检查表保存在设备上支持事务的本地数据库中,为每条记录分配唯一操作标识,明确展示发送状态,并在恢复连接后与服务器协调数据,避免产生重复记录。

离线工作中的“已保存”并非单一状态。应向用户分别显示 已保存到设备, 等待发送, 服务器已接受 以及 需要审查 等状态,避免在弱网环境下把表单已显示在屏幕上,误认为已传到中心系统。

出发前应将哪些数据下载到设备?

简要说明:只下载完成已分配工作所必需、当前有效且已获授权的数据包。

  • 工单和固定设备标识
  • 与设备类型对应的检查表固定版本
  • 必要的检查准则和选项列表
  • 已指派人员的任务范围和设备参考信息
  • 最后同步时间和数据包版本

W3C Service Workers 规范说明,可通过拦截请求的工作线程及本地请求与响应存储构建离线 Web 应用。在 VizyonTech 流程中,这意味着不能只缓存页面框架,还应在出发前,将已分配任务的表单和参考数据准备为经过验证的数据包。

数据包不是当前版本时,应用不得悄悄打开旧表单。应明确展示最后同步时间、表单版本和离线使用期限;关键主数据缺失时,必须按 fail-closed 原则阻止创建记录。工单、设备和表单之间的关系,可在 定期检验计划指南中 进一步了解。

表单应如何保存在设备上?

简要说明:每次字段变更都应通过短小、原子性的本地数据库事务写入,而不是只保存在临时界面内存中。

W3C IndexedDB 3.0 草案描述了面向离线 Web 需求的本地结构化对象存储,以及事务全部写入或发生错误时回滚的机制。对于现场表单,这意味着将测量值、单位、说明、照片关联和记录时间一致地写入某个草稿版本。

字段为什么保存?核查项目
操作标识防止同一次提交在重试时产生重复记录在设备上生成一次,并保持不变
本地版本标识每次编辑的顺序事务成功提交后递增
创建与修改时间说明事件顺序设备时间与服务器接受时间分别保存
表单版本保留实际使用的检查准则业务创建时固定
队列状态区分本地保存与成功送达本地、等待、发送中、已接受、错误
附件关联将照片匹配到正确记录验证文件摘要和本地引用

只有本地事务完成后,“保存”按钮才能显示成功。应用关闭、电量耗尽或网络短暂恢复,都不应将未完成的表单标记为“已发送”。

佩戴防护装备的专业人员在平板上检查离线现场记录
即使本地记录已保存完成,仍需单独跟踪服务器是否接受;恢复连接后,应受控发送队列中的记录。

恢复连接后如何同步?

简要说明:按顺序发送队列,每项记录使用同一操作标识重试,并且只有在收到服务器明确接受的响应后,才标记为完成。

  1. 不仅要确认存在网络连接,还要确认可以访问应用服务器。
  2. 重新检查队列记录的本地完整性和必填字段。
  3. 以固定操作标识和本地版本发送记录及附件。
  4. 在服务器端执行权限、工单、表单版本和现有记录版本检查。
  5. 服务器成功接受后,将服务器记录标识和接受时间写回设备。
  6. 将临时错误转入受控重试,将永久性验证错误交由人工审查。

RFC 9110 说明,幂等请求在连接失败后可以重复执行,同时保持相同的预期效果。对于定期检验记录,仅有方法名称并不足够:服务器不能把使用同一操作键的第二次请求创建成新报告,而应返回此前接受的结果。

Background Synchronization API 可在恢复连接后,将工作交给 service worker 处理;但 MDN 将其标记为尚未得到广泛浏览器支持的功能。因此,队列不能只依赖后台事件,还应在应用启动和用户执行“立即发送”时安全运行。

同一记录在两台设备上被修改后怎么办?

简要说明:测量和符合性字段不应采用“最后写入者胜出”的方式;应阻止版本冲突,并向授权用户展示两边的变更。

如果服务器版本已高于设备启动任务时取得的基础版本,自动覆盖可能导致数据丢失。无冲突字段可以受控合并;但若双方都修改了同一测量值、结果或关键说明,应将记录设为 需要审查 状态,等待处理。

  • 比较服务器版本和设备取得的基础版本。
  • 在操作轨迹中保留变更字段及操作人员。
  • 不得用离线草稿悄悄替换已发布报告。
  • 将冲突处理结果作为新修订保存,并记录理由。
  • 向用户明确显示哪台设备上的记录仍在等待处理。

如何保护设备上的离线数据?

简要说明:只下载必需数据,利用平台的安全存储机制保护本地数据,并按设备和会话生命周期执行受控清理。

OWASP MASVS-STORAGE-1 要求,无论敏感数据位于设备何处,都应安全保存。MASWE-0006 则建议不在本地存储不必要的敏感数据,将密钥保存在平台安全密钥库中,并采用适当的加密。

  • 离线数据包只包含已分配任务,不包含全部客户档案。
  • 根据数据分类保护会话密钥、个人数据、照片和测量附件。
  • 不要将加密密钥放在数据文件旁或源代码中。
  • 测试设备丢失、用户更换和权限撤销场景。
  • 根据保存政策,安全清理已经发送的本地附件。
  • 不得将敏感记录写入共享文件区域或不受控的备份。

离线工作并不取消权限检查。即使设备此前已获授权,服务器仍应在同步时重新验证用户、机构、工单和表单版本。

上线前应测试哪些场景?

简要说明:仅测试飞行模式不够;应证明在记录的各个阶段发生中断时都能正确处理,且重试不会产生重复记录。

  1. 应用首次在离线状态下启动时,能否正常打开,或正确提示准备不足?
  2. 保存字段时应用关闭,是否保留最近一次已完成的本地事务?
  3. 上传照片时连接中断,表单与附件的关联是否仍然完整?
  4. 服务器已接受记录但响应未到达设备时,再次发送是否会产生第二条记录?
  5. 中心系统修改表单版本后,如何区分基于旧版本的离线任务?
  6. 同一任务在两台设备上编辑时,关键字段冲突是否会被阻止?
  7. 权限已被撤销的用户重新连接后,是否拒绝提交,同时保留其记录供处理?
  8. 队列等待数日后,用户能否判断哪些记录尚未传到中心系统?

Vizyon Periyodik 的评估不能只演示“表单能打开”,而应一并测试本地事务提交、可见队列、幂等接受、冲突管理和设备安全。软件选型中其他条件不足即阻止操作的控制,可参阅 定期检验软件选型指南 可供参阅。

参考来源

  1. W3C — Service Workers (候选推荐标准草案,2026 年 6 月 8 日)。
  2. W3C — Indexed Database API 3.0 (工作草案,2025 年 8 月 13 日)。
  3. Android Developers — 构建离线优先的应用 (访问日期:2026 年 8 月 11 日)。
  4. IETF — RFC 9110,HTTP 语义:幂等方法 (2022 年 6 月)。
  5. OWASP — MASVS-STORAGE-1:安全存储 (访问日期:2026 年 8 月 11 日)。
  6. MDN — Background Synchronization API (访问日期:2026 年 8 月 11 日;浏览器支持有限)。

需要离线保存的字段,还应根据机构的数据分类、设备政策、任务范围及产品支持的客户端平台分别确认。

VizyonTech 编辑部 VizyonTech 技术内容团队
02 — 继续阅读

相关技术文章。

在同一流程中做决策时可参考的其他 VizyonTech 指南。

让我们按照您的团队情况将这一流程数字化。

我们可以倾听您的真实运营流程,共同明确合适的 VizyonTech 解决方案。