如何备份舒尔特方格历史
了解舒尔特方格历史在本地如何保存、何时选择 CSV 或 JSON、JSON 导入怎样工作,以及清除浏览器数据或更换设备后会发生什么。
作者 schulte-table.org 编辑团队 ·
进度追踪器不会读取在线账户,而是读取当前浏览器中 schulte-table.org 的版本化 localStorage 记录。这种设计不要求注册,但清除站点数据或换到另一浏览器后,新环境不会自动出现原历史。
实际可用的保护方式是导出:CSV 适合在表格软件中查看筛选记录;JSON 保留当前 Tracker 能校验并重新导入的结构,是备份、迁移与恢复所用格式。
1. 共享历史保存在哪里
当前存储键为 schulte:attempts:v1,属于本站在当前浏览器 origin 下的本地存储,内容是通过校验的版本 1 记录数组。另一个浏览器配置、另一款浏览器或另一台设备拥有独立存储区,本站不会自动复制。
只有调用共享 attempt store 的受支持工具才会写入 Tracker。生成器布局和打印布局不会自动变成 Tracker 记录。部分工具还使用其他键保存页面设置或专用历史;Tracker 导出只覆盖共享尝试集合,不包含所有偏好与工具专用对象。
浏览器清除操作、无痕模式、存储压力、扩展或组织策略都可能移除或隔离 localStorage。如果记录重要,应在清理数据或更换环境前导出文件。
2. 单条记录包含什么
每条有效记录包含 schemaVersion 1、非空 ID、ISO 完成时间、3–10 的 gridSize、匹配的 cellCount、允许的 mode、非负 durationMs、非负整数 mistakes 和 completed 布尔值。inputMethod 可选,值为 mouse、touch、keyboard 或 unknown;challengeId 也可选。
schema 没有姓名、邮箱、IP 地址或设备指纹字段。但不能因此写成“完全没有设备信息”:inputMethod 仍是一个可选的宽泛输入方式字段。导出文件还包含活动日期与用时,应按自己的实际需要保存或分享。
// 仅为虚构示例
{
"schemaVersion": 1,
"id": "example-record",
"completedAt": "2026-08-14T04:00:00.000Z",
"gridSize": 5,
"cellCount": 25,
"mode": "number-ascending",
"durationMs": 32800,
"mistakes": 1,
"completed": true,
"inputMethod": "mouse"
}3. CSV 与 JSON 用途不同
CSV 导出当前筛选结果,以表头和每条尝试一行表示。列依次为 schemaVersion、id、completedAt、gridSize、cellCount、mode、durationMs、mistakes、completed、inputMethod 和 challengeId;含逗号、引号或换行的值会被正确引用。
JSON 导出包含 schemaVersion、exportedAt 与 attempts 数组的外层对象,并保留数字、布尔值和集合结构。当前界面只提供“导入 JSON”,没有 CSV 导入器,所以 CSV 用于查看与分析,不是往返恢复格式。
导出使用当前 Tracker 筛选结果,不一定等于全部历史。若要做完整 JSON 备份,应先选择包含目标记录的日期、尺寸、模式、输入方式与完成状态范围。
| 格式 | 适合用途 | 保留完整记录结构 | 当前 Tracker 可导入? | 人工可读 |
|---|---|---|---|---|
| CSV | 表格查看与分析 | 字段完整但扁平化 | 不可以 | 可以,行列形式 |
| JSON | 备份、迁移与恢复 | 可以,含外层对象和 attempts | 可以 | 可以,结构化文本 |
4. JSON 导入如何校验与合并
导入会在浏览器中读取所选文件并解析 JSON。解析器接受数组,或包含 attempts 数组的对象,只保留符合当前版本 1 schema 的记录。版本不符、日期无效、格数不匹配、mode 未知、用时为负、错误数无效等都会令该条无效。
有效输入会与现有记录合并,ID 是去重键;相同 ID 只保留首次出现的一条。导入不会先清空当前集合。合并结果按完成时间从新到旧排序,再写回同一 localStorage 键。
如果文件无法产生任何有效记录,界面会提示文件不含有效版本化记录。系统不会自动修复旧 schema 或猜测缺失字段。迁移时应保留原导出文件,并在删除源浏览器数据前检查目标记录。
校验
版本、字段、尺寸与格数关系、模式、时间、用时、错误数及完成状态必须符合当前规则。
合并
有效导入记录加入现有集合,不执行整体覆盖。
按 ID 去重
相同 ID 只保留一次;相似用时但 ID 不同仍是不同记录。
5. 浏览器之间迁移的实际步骤
先在源 Tracker 重置筛选,确认目标历史都可见,然后导出 JSON 并保留文件。到目标浏览器打开本站 Tracker,选择导入 JSON,再检查导入提示和原始记录。
重复导入同一文件不会复制相同 ID。如果目标浏览器已有自己的历史,两组记录会合并。确认后可在目标端再导出一次,得到一份合并后的文件。
- 显示需要保留的完整源记录
- 导出 JSON
- 保留原文件
- 在目标浏览器导入 JSON
- 核对数量、模式、日期与原始记录
- 需要时再导出合并文件
6. 删除筛选记录与删除全部
“删除筛选记录”只移除当前筛选集合,其余记录保留;“删除全部”清空共享尝试集合。两者都会打开明确确认框,提醒本站无法恢复本地记录,并建议需要时先导出。
Tracker 删除不一定清理每日挑战、引导会话或页面专用的其他存储键;反过来,删除每日挑战数据也不会自动移除已经写入共享 Tracker 的记录。应使用与目标数据集对应的控件。
7. 隐私与解释边界
Tracker 的导入导出在浏览器内执行,所选文件不会通过该流程上传到 schulte-table.org。隐私页另行说明页面自动加载的 Google 服务和浏览器控制;“任务历史留在本地”不代表页面没有任何网络服务。
导出字段描述浏览器任务的配置、用时、错误、完成情况与有限输入背景。它们不是医疗记录、注意力评价、智力分数或总体百分位,也不能保证阅读或学习结果。备份只保留记录,不会改变其证据边界。
常见问题
CSV 能用于恢复历史吗?
当前不能。CSV 用于表格查看,Tracker 只提供 JSON 导入。
JSON 导入会覆盖现有记录吗?
不会。有效记录与现有集合合并,相同 ID 只保留一次。
清除站点数据后会怎样?
浏览器可能移除本地尝试集合。本站没有账户副本可恢复;若保留了 JSON 文件,可重新导入。
导出中包含姓名或邮箱吗?
当前共享 schema 没有这些字段,但可以包含日期、任务数据和可选的宽泛输入方式。