本地词库、本地记录Qwerty Learner 单词记忆与打字训练的存储架构【免费下载链接】qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learnerQwerty Learner 是一款面向键盘工作者的开源工具你在实体键盘上逐个敲出单词一边记忆拼写一边训练肌肉记忆。项目没有为任何数据架设服务器——200 多本词库和每条练习记录全部存在浏览器本地。下面按数据从哪来、怎么存、怎么查、怎么带走的顺序讲清楚这套本地方案的设计。 为什么所有数据都放在本地词库是静态 JSON 文件直接随站点一起分发放在 public/dicts/ 目录下。大学英语四级、雅思、GRE乃至日语 N5 到 N1、德语、印尼语、编程语言关键词目前收录了 200 多本。词库选择界面200 多本 JSON 词库按级别与语言分类全部由本地文件驱动本地优先带来三个直接好处离线可用。飞机上、断网的机房里词库照常加载因为文件就在站点里隐私安全。练习记录从不上传错误打在哪、花了多少毫秒只有你自己能看到结构统一。每本词库都是单词 释义 英美音标的同一套结构新词库只要放进目录就能被界面自动识别。代码单词练习编程语言关键词同样来自本地 JSON与英语词库共用加载链路大词库为什么能秒开加载链路很短src/utils/wordListFetcher.ts 用fetch拉取 JSON外面套一层 SWR 缓存——SWR 可以理解为先读缓存、再请求远端的浏览器侧请求库。同一本词库第二次打开时直接命中缓存。真正让大词库不卡顿的是分片策略。词库被切成每章 20 个单词的固定分片界面只渲染当前这一片newWords wordList.slice( currentChapter * CHAPTER_LENGTH, (currentChapter 1) * CHAPTER_LENGTH )这段代码说明无论词库有 926 个词还是 7000 个词单屏永远只处理 20 个章节切换只是移动一个 slice 的起点渲染成本恒定。IndexedDB 三张表的分工练习数据落在 IndexedDB 里——浏览器内置的本地数据库相当于设备上的一个迷你数据库文件。项目用 Dexie 这个封装库操作它核心代码在 src/utils/db/。数据库RecordDB定义了三张表this.version(3).stores({ wordRecords: id,word,timeStamp,dict,chapter,wrongCount,[dictchapter], chapterRecords: id,timeStamp,dict,chapter,time,[dictchapter], reviewRecords: id,dict,createTime,isFinished, })这段字符串声明了每张表的索引是理解查询性能的关键wordRecords记录每个单词的练习细节时间戳、错误次数、每个字母的击键间隔、每个位置打成了什么错键chapterRecords记录每次章节练习的汇总用时、正误按键数、一次打对的单词下标并由此现场算出 WPM每分钟单词数和准确率reviewRecords保存复习模式的进度与动态生成的单词队列。注意[dictchapter]这个复合索引按某本词库的某个章节过滤记录时直接命中索引不必全表扫描。从击键到图表每条wordRecords里的timing数组存着相邻字母的时间差mistakes存着第几个字母被错按成了哪把键。分析页 src/pages/Analysis/ 就是对这些原始数据的聚合。useWordStats按时间范围批量取数const records await db.wordRecords .where(timeStamp) .between(startTimeStamp, endTimeStamp) .toArray()这段代码说明热力图、WPM 折线图、错误时段柱状图背后是同一次范围查询时间戳索引让它保持高效。分析页练习热力图与速度趋势均由本地 IndexedDB 记录即时聚合好扩展也拿得走扩展词库只需要一步把符合统一结构的 JSON 文件放进public/dicts/界面会自动收录它不需要改任何代码。迁移靠导出导入exportDatabase把三张表整体导出为 JSON再经 gzip 压缩成.gz文件下载换机器时反向导入即可进度完整还原。整套架构的逻辑是一致的词库走静态文件记录走 IndexedDB聚合在客户端完成。没有账号、没有同步服务数据天然离线可用、可携带也让任何一台能开浏览器的机器都足以支撑长期、高频的打字肌肉记忆训练。【免费下载链接】qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
