Skip to content

数据同步与离线使用

TodoHeap 支持云端同步和离线编辑,让你随时随地管理任务。


云端同步

自动同步机制

TodoHeap 采用自动实时同步,你的所有操作无需手动保存:

本地编辑任务
    ↓ 自动检测
    ↓ 上传到云端
    ↓ 其他设备立即同步

同步内容

所有任务相关数据都会自动同步:

  • ✅ 新创建的任务
  • ✅ 任务编辑(标题、状态、优先级等)
  • ✅ 任务删除/恢复
  • ✅ 层级关系改变
  • ✅ 用户设置和偏好

同步延迟

网络状况延迟
WiFi / 有线< 1 秒
4G / 5G1-3 秒
2G / 弱信号5-10 秒
离线暂存本地

多设备同步

在不同设备上登录同一账户,所有数据自动同步:

电脑端编辑任务

手机端立即看到更新

平板端也同时更新

任何设备优先级变化,其他设备即时反应

使用场景

  • 工作电脑上规划任务
  • 手机上执行任务
  • 平板上做演示汇报

离线编辑

离线模式自动激活

当网络中断时,TodoHeap 自动切换到离线模式:

网络中断

系统自动检测(< 2 秒)

切换到离线模式

在本地数据库编辑任务

操作仍然可以进行

离线时的操作

在离线模式下,你仍然可以:

查看任务 - 浏览已同步的任务
新建任务 - 创建新任务(暂存本地)
编辑任务 - 修改现有任务
删除任务 - 删除任务(暂存本地)
切换视图 - 使用所有四种视图
搜索筛选 - 搜索和筛选任务

不支持的操作(需要网络):

  • AI 任务分解
  • AI 任务分析
  • AI 优先级优化
  • 实时同步(改为暂存)

离线指示器

页面顶部或侧边栏会显示离线状态:

[⚠️ 离线模式 - 操作将在网络恢复后同步]

或显示为灰色图标,表示不可用功能已禁用。

本地存储

离线时的所有操作保存在本地存储中:

  • 浏览器端:IndexedDB(最多 50MB)
  • 移动端:应用沙箱存储
  • 加密:本地数据加密存储,安全

网络恢复与冲突处理

自动同步流程

网络恢复时,系统自动开始同步:

网络恢复

系统检测(< 5 秒)

上传本地更改到云端

下载服务器端更新

合并处理(冲突检测)

刷新 UI 显示最新数据

冲突检测与解决

冲突场景:同一任务在离线期间被多个设备修改

解决策略

冲突类型处理方式
字段级冲突(如标题和优先级同时改)自动合并(通常不产生真正冲突)
编辑冲突(同一字段改成不同内容)显示对话框,用户选择保留版本
删除冲突(一端删除,一端修改)用户选择恢复还是保留删除

冲突示例

场景:离线时本地改任务优先级为 2,
      云端其他设备改优先级为 0

网络恢复时

出现冲突提示

用户选择:
  - 保留本地改动(优先级 2)
  - 保留云端改动(优先级 0)
  - 手动编辑新值

冲突处理建议

为避免冲突,建议:

  1. 避免同时编辑:不在多个设备上同时编辑同一任务
  2. 定期同步:确保在网络可用时及时同步
  3. 重要操作前检查:删除前确认本地是否为最新版本
  4. 信任自动合并:大多数冲突系统可自动解决

数据备份

自动备份

云端数据自动备份:

  • 频率:每小时自动备份一次
  • 保留:保留最近 30 天的备份
  • 恢复:联系支持可恢复历史版本

手动导出备份

在「设置」页面导出任务数据:

  1. 点击「设置」→「数据导出」
  2. 选择导出格式:
    • JSON:完整数据,包含所有属性
    • CSV:表格格式,可导入其他应用
    • OPML:思维导图格式
  3. 点击「导出」保存到本地

导出文件示例

json
{
  "version": "1.0",
  "exportDate": "2026-05-11T12:34:56Z",
  "tasks": [
    {
      "id": 1,
      "title": "任务标题",
      "status": "todo",
      "priority": 2,
      "deadline": "2026-05-20",
      "parentId": null,
      "children": [...]
    }
  ]
}

数据导入

暂不支持从其他应用直接导入,但计划支持:

  • Todoist 导入
  • Microsoft To Do 导入
  • CSV 导入
  • ICS(日历格式)导入

隐私与安全

数据加密

传输加密:所有数据通过 HTTPS 加密传输
存储加密:云端数据在 Supabase 中加密存储
本地加密:离线时本地数据加密

访问权限

  • 只有你能访问自己的数据
  • 服务提供商(如 Supabase)无法看到任务内容
  • 数据完全隔离,不会与他人共享

用户隐私政策

详见应用的隐私政策


常见问题

Q: 离线时创建的任务会丢失吗?

A: 不会。网络恢复后会自动同步到云端。即使应用崩溃,本地数据也保存在浏览器的 IndexedDB 中。

Q: 多个设备同时编辑同一任务会怎样?

A:

  1. 最后一次修改会被上传
  2. 如果其他设备也有未同步的改动,系统会检测冲突
  3. 出现冲突时,用户可选择保留哪个版本
  4. 通常自动合并不会产生问题

Q: 离线时能使用 AI 功能吗?

A: 不能。AI 功能需要调用服务器端的大模型,必须有网络连接。

Q: 怎样知道数据是否已同步?

A:

  • 同步成功时,页面顶部显示 "✓ 已同步"
  • 有未同步数据时,显示 "⏳ 同步中..." 或 "⚠️ 离线"
  • 可点击查看详细同步状态

Q: 能删除云端备份吗?

A: 可以。在设置中选择"清除同步历史",但这会:

  • 删除所有历史版本备份
  • 保留当前数据
  • 建议备份重要数据后再操作

Q: 支持与他人共享任务吗?

A: 当前版本不支持。团队协作和任务共享功能在规划中。

Q: 切换账户会保留本地数据吗?

A: 不会。切换账户时,本地数据会被清除(为安全考虑)。建议:

  • 切换前确保数据已同步到云端
  • 或手动导出重要数据

Q: 怎样在多个浏览器间同步?

A: 不同浏览器的本地存储是独立的,但云端数据是统一的:

  • 浏览器 A 编辑 → 上传云端
  • 浏览器 B 查看 → 从云端同步
  • 始终能看到最新数据

同步最佳实践

  1. 定期检查网络:确保网络稳定,避免频繁中断
  2. 及时同步重要更改:关键改动后手动检查同步状态
  3. 定期备份:重要数据定期导出备份
  4. 避免同时多设备编辑:如非必要,不在多个设备同时编辑同一任务
  5. 信任自动处理:系统的冲突处理足以应对大多数情况

文档使用 VuePress 构建