Qwerty Learner 本地数据存储方案:IndexedDB 与 SQLite 选型指南,保住你的学习进度
【免费下载链接】qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner
第一次打开 Qwerty Learner 开始背单词、练打字之后,你产生的每一条记录都不会上传到服务器——它们只存在你这台设备的本地存储里。读懂 IndexedDB 数据与 SQLite 的适用边界,你才能在换设备、清浏览器缓存之前,把练习进度安全地带走。
哪些练习数据会被保存在本地?
Qwerty Learner 把四类数据存进浏览器内置的本地数据库(源码在 src/utils/db/):
- 单词练习记录:每个词的错次数、每个字母的按键间隔时间,用于生成打字速度分析;
- 章节完成记录:哪个词库的哪一章练过、正确率多少、耗时多久;
- 错题本与复习计划:答错的词会被单独归集,进入间隔复习队列;
- 界面设置与个性化偏好:发音开关、视图样式等。
这些数据直接决定体验的连续性。丢了它们,等于从头再背一遍;留着它们,你换浏览器书签、隔天回来接着练时,进度还在。
浏览器端与桌面端:两条存储路线分别适合谁?
先说结论性的事实:Qwerty Learner 目前所有本地数据都通过 Dexie 库封装的 IndexedDB 存取。IndexedDB 是浏览器自带的高容量本地对象存储,适合存大量结构化记录,且读写是异步的,不会卡住打字输入。
按使用环境对号入座:
- 浏览器用户(在线版、VSCode 插件内嵌网页):数据自动写入 IndexedDB,零配置。只要不手动清数据,记录一直可用。
- Tauri 桌面用户(src-tauri/ 目录下的 Rust 壳):窗口内仍是网页环境,存储同样落在 IndexedDB,只是数据位置绑定在桌面浏览内核里,换机器后不会自动跟随。
- 想自建扩展或二次开发的贡献者:如果计划把练习数据落到磁盘文件、做跨设备同步或复杂统计报表,SQLite(一个文件即数据库的关系型存储)是更稳妥的底座;个人使用则无需关心这一层。
选型判断规则:对照你的场景选
用这四条规则快速判断,不必纠结技术细节:
- 只在浏览器里练习 → 用 IndexedDB。原生支持、无需安装,Qwerty Learner 默认就是这条路。
- 练习记录量大、要按时间聚合统计 → 倾向 SQLite。几千条按键时序数据做分组查询,关系型数据库更省代码。
- 需要一份可放进网盘备份的文件 → 倾向 SQLite。单文件数据库拷贝即可;IndexedDB 则要靠应用自己的导出功能。
- 数据是零散的设置项、单个词的状态 → IndexedDB 足够。键值存取最快,没必要上数据库。
对普通学习者,规则 1 就是答案:跟随项目默认即可,把精力留给单词本身。
备份与迁移学习记录的四步操作
Qwerty Learner 在设置面板的「数据」页签内置了导出/导入(实现见 />
容易踩的三个坑
- 「存在本地 = 永远安全」是错觉。IndexedDB 数据跟随浏览器存储,清缓存、换浏览器、重装系统都可能让它消失。定期导出才是保命的做法。
- 不同端、不同部署的数据不互通。同一个账号在线版和桌面版各自维护一份本地库,练习记录不会自动同步;跨设备迁移的唯一通道就是导出文件。
- 把词库当成个人数据是误解。内置词库(CET、考研、程序员 API 等,放在 public/dicts/)属于应用资源,重新部署即恢复;需要备份的是你自己的练习记录,两者不要混在一起。
给两类读者的最终建议
如果你是浏览器端日常练习者:什么都不用选,默认 IndexedDB 存储 + 每两周导出一次 .gz 备份,即可覆盖 99% 的风险场景。
如果你要基于该项目做扩展或自建部署:个人练习数据继续沿用 IndexedDB 保持轻量;一旦涉及文件级备份、跨端同步或大数据量统计分析,再引入 SQLite 作为数据底座。
动手清单(今天就能完成):
- 打开 设置 → 数据,导出一次完整备份并验证文件能正常下载;
- 把 .gz 文件放进一个你确定不会误删的位置(网盘/硬盘);
- 换设备前,先导出、后导入,确认当前数据没有未备份增量;
- 记住导入=覆盖,任何导入动作前都先再做一次导出。
【免费下载链接】qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考