数据同步与离线使用
TodoHeap 支持云端同步和离线编辑,让你随时随地管理任务。
云端同步
自动同步机制
TodoHeap 采用自动实时同步,你的所有操作无需手动保存:
本地编辑任务
↓ 自动检测
↓ 上传到云端
↓ 其他设备立即同步同步内容
所有任务相关数据都会自动同步:
- ✅ 新创建的任务
- ✅ 任务编辑(标题、状态、优先级等)
- ✅ 任务删除/恢复
- ✅ 层级关系改变
- ✅ 用户设置和偏好
同步延迟
| 网络状况 | 延迟 |
|---|---|
| WiFi / 有线 | < 1 秒 |
| 4G / 5G | 1-3 秒 |
| 2G / 弱信号 | 5-10 秒 |
| 离线 | 暂存本地 |
多设备同步
在不同设备上登录同一账户,所有数据自动同步:
电脑端编辑任务
↓
手机端立即看到更新
↓
平板端也同时更新
任何设备优先级变化,其他设备即时反应使用场景:
- 工作电脑上规划任务
- 手机上执行任务
- 平板上做演示汇报
离线编辑
离线模式自动激活
当网络中断时,TodoHeap 自动切换到离线模式:
网络中断
↓
系统自动检测(< 2 秒)
↓
切换到离线模式
↓
在本地数据库编辑任务
↓
操作仍然可以进行离线时的操作
在离线模式下,你仍然可以:
✅ 查看任务 - 浏览已同步的任务
✅ 新建任务 - 创建新任务(暂存本地)
✅ 编辑任务 - 修改现有任务
✅ 删除任务 - 删除任务(暂存本地)
✅ 切换视图 - 使用所有四种视图
✅ 搜索筛选 - 搜索和筛选任务
❌ 不支持的操作(需要网络):
- AI 任务分解
- AI 任务分析
- AI 优先级优化
- 实时同步(改为暂存)
离线指示器
页面顶部或侧边栏会显示离线状态:
[⚠️ 离线模式 - 操作将在网络恢复后同步]或显示为灰色图标,表示不可用功能已禁用。
本地存储
离线时的所有操作保存在本地存储中:
- 浏览器端:IndexedDB(最多 50MB)
- 移动端:应用沙箱存储
- 加密:本地数据加密存储,安全
网络恢复与冲突处理
自动同步流程
网络恢复时,系统自动开始同步:
网络恢复
↓
系统检测(< 5 秒)
↓
上传本地更改到云端
↓
下载服务器端更新
↓
合并处理(冲突检测)
↓
刷新 UI 显示最新数据冲突检测与解决
冲突场景:同一任务在离线期间被多个设备修改
解决策略:
| 冲突类型 | 处理方式 |
|---|---|
| 字段级冲突(如标题和优先级同时改) | 自动合并(通常不产生真正冲突) |
| 编辑冲突(同一字段改成不同内容) | 显示对话框,用户选择保留版本 |
| 删除冲突(一端删除,一端修改) | 用户选择恢复还是保留删除 |
冲突示例:
场景:离线时本地改任务优先级为 2,
云端其他设备改优先级为 0
网络恢复时
↓
出现冲突提示
↓
用户选择:
- 保留本地改动(优先级 2)
- 保留云端改动(优先级 0)
- 手动编辑新值冲突处理建议
为避免冲突,建议:
- 避免同时编辑:不在多个设备上同时编辑同一任务
- 定期同步:确保在网络可用时及时同步
- 重要操作前检查:删除前确认本地是否为最新版本
- 信任自动合并:大多数冲突系统可自动解决
数据备份
自动备份
云端数据自动备份:
- 频率:每小时自动备份一次
- 保留:保留最近 30 天的备份
- 恢复:联系支持可恢复历史版本
手动导出备份
在「设置」页面导出任务数据:
- 点击「设置」→「数据导出」
- 选择导出格式:
- JSON:完整数据,包含所有属性
- CSV:表格格式,可导入其他应用
- OPML:思维导图格式
- 点击「导出」保存到本地
导出文件示例:
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:
- 最后一次修改会被上传
- 如果其他设备也有未同步的改动,系统会检测冲突
- 出现冲突时,用户可选择保留哪个版本
- 通常自动合并不会产生问题
Q: 离线时能使用 AI 功能吗?
A: 不能。AI 功能需要调用服务器端的大模型,必须有网络连接。
Q: 怎样知道数据是否已同步?
A:
- 同步成功时,页面顶部显示 "✓ 已同步"
- 有未同步数据时,显示 "⏳ 同步中..." 或 "⚠️ 离线"
- 可点击查看详细同步状态
Q: 能删除云端备份吗?
A: 可以。在设置中选择"清除同步历史",但这会:
- 删除所有历史版本备份
- 保留当前数据
- 建议备份重要数据后再操作
Q: 支持与他人共享任务吗?
A: 当前版本不支持。团队协作和任务共享功能在规划中。
Q: 切换账户会保留本地数据吗?
A: 不会。切换账户时,本地数据会被清除(为安全考虑)。建议:
- 切换前确保数据已同步到云端
- 或手动导出重要数据
Q: 怎样在多个浏览器间同步?
A: 不同浏览器的本地存储是独立的,但云端数据是统一的:
- 浏览器 A 编辑 → 上传云端
- 浏览器 B 查看 → 从云端同步
- 始终能看到最新数据
同步最佳实践
- 定期检查网络:确保网络稳定,避免频繁中断
- 及时同步重要更改:关键改动后手动检查同步状态
- 定期备份:重要数据定期导出备份
- 避免同时多设备编辑:如非必要,不在多个设备同时编辑同一任务
- 信任自动处理:系统的冲突处理足以应对大多数情况
