# 2026 年最佳离线 Flashcards App：没网也能用 FSRS 和同步正常学习

*2026-03-16*

我很喜欢在最不体面的场景里测试 flashcards app：糟糕 Wi‑Fi 的飞机上、电量快没了，而且我对加载转圈一点耐心都没有。很多“现代”学习工具，就是在这种地方突然暴露出它们其实只是套了件衣服的网站。

这通常就是人们开始搜索 **最佳离线 flashcards app** 的时刻。

不是因为离线学习是什么小众需求，而是因为记忆训练本来就发生在那些很普通的地方：航班、火车、候诊室、信号不稳的移动网络，以及那些只想立刻看到下一张卡片、而不是等重新连接的半截通勤路上。

如果应用每次都跟着网络一起犹豫，学习习惯就会比它本该有的更脆弱。

## 大多数 flashcards app 只有在你真正需要离线时，才暴露出自己并不离线

很多产品都会宣称某种形式的离线支持。

通常意思只有两种：

- 浏览器保留了一点缓存，有时候上一个页面还能打开
- 手机 app 能显示旧卡片，但你一编辑点东西就开始变得奇怪

这和真正的 **无网络 flashcards app** 不是一回事。

真正有用的版本标准更严格。你应该能够打开 app，复习到期卡片，创建或编辑卡片，然后像网络现在根本不重要一样继续学下去。

之后再同步。

这最后一步听起来很理所当然，但很多产品恰恰是在这里变得脆弱。在线时一切都很好，一进入离线状态，产品就像把离线当成一种从未真正尊重过的临时例外。

## 浏览器标签页不是离线优先学习系统

我并不讨厌 web app。我一直都在用。

但如果你想 **离线学习 flashcards**，浏览器标签页往往不是最合适的重心。

会话过期。标签页刷新。网络抖动。有些本地状态能留下来，有些不能。你会得到一种“勉强够用”的可靠性，直到你真正想安静地完成一轮复习时，它突然不够用了。

所以我认为更好的架构是：本地优先，稍后同步。

先写到本地。

先把复习队列保存在本地。

把网络当成后续步骤，而不是挡在你和下一张卡之间的东西。

## 真正有用的架构是本地优先，之后同步

我信任的那种方案其实很朴素：

1. 客户端把卡片存到本地
2. 复习动作先写入本地
3. 待同步改动先留在 outbox
4. 网络恢复后再 push 和 pull 同步

对于一款 **离线间隔重复应用** 来说，这才是正确的形状，因为它尊重真实的学习体验。复习应该很快。创建卡片应该很快。队列应该稳定。网络应该只是背景里的管道，而不是每次点击都要参与的前台角色。

有趣的是，这听起来比实际感受更技术化。

对于学习者来说，它只是显得很平静。

应用打开，卡片就在。你学习。之后它自己补同步。

多数人一开始想要的，本来也就只是这样。

## 离线支持弱，会直接让间隔重复体验变差

弱离线支持不只是一个基础设施问题。

它会直接改变学习体验本身。

如果你的复习记录保存失败，如果重新联网后到期队列莫名变化，或者应用让你怀疑“刚才那次学习到底算没算”，整个间隔重复习惯都会开始显得有点假。

这个问题比听起来更严重。

间隔重复只有在学习者信任这套节奏时才真正有效。你现在完成复习。系统记住发生了什么。明天的队列如实反映现实。没有戏剧性事故。

如果产品连这种信任都打断，哪怕只是偶尔，习惯都会更难维持。

所以 **FSRS 离线 flashcards** 这个说法，对我来说并不只是一个小众技术词。它指向的是一件很实际的事：排程器和离线模型必须能干净地协同工作。

## 一款离线 flashcards app 真正需要什么

如果我要定义 **最佳离线 flashcards app**，我会先看几个很朴素的点：

- 真正的本地存储，而不只是页面缓存
- 复习动作立刻保存
- 没网也能编辑卡片
- 同步模型不会重复或丢失工作
- 排程器在不同客户端之间保持一致
- 一旦重新联网，产品整体仍然说得通

这听起来不是很性感的产品营销，但它恰恰区分了“有个离线模式”和“这是个严肃学习工具”。

你通常很快就能感觉出差别。

一个 app 会让你每次没信号时都紧张。

另一个则几乎像根本不在意。

## 同步不是后台细节，而是产品的一部分

有时候人们会把同步说得像某个后端脚注。

我觉得它本身就是用户体验的一部分。

如果你手机上的复习队列和主账号逐渐漂移，那不是基础设施问题，而是产品在核心职责上失手了。

真正好的版本，从学习者角度看应该很简单：

- 在手上的设备上离线学习
- 之后再联网
- 保留同样的卡片、同样的复习历史，以及同样的整体系统

这才是一个靠谱 **flashcards 同步应用** 应该有的感觉。

而不是“请稍候，我们正在确认你在火车上做的那些学习记录还存不存在”。

## Flashcards 在这里的位置

[Flashcards](https://flashcards-open-source-app.com/zh/) 在这个问题上很有意思，因为它的产品已经建立在我真正想要的那种结构上。

现在的栈包括：

- 托管 web app
- 仓库中的 iOS 客户端
- iOS 本地 SQLite
- 后端的 sync push 和 pull 路由
- FSRS 排程
- 开源代码和自托管路径

这很重要，因为它不是靠营销文案假装“离线能力以后会解决”。离线优先模型已经是架构的一部分。

现有文档写得也很明确：

- iOS app 先写本地
- 改动进入 outbox 排队
- 同步先 push 待处理操作
- 然后再 pull 远端改动

如果你想看技术层面的内容，架构文档在这里：

- [架构文档](https://flashcards-open-source-app.com/zh/docs/architecture/)
- [自托管指南](https://flashcards-open-source-app.com/zh/docs/self-hosting/)

## 当整个系统保持一致时，FSRS 才会更好

我喜欢 FSRS 的一个原因，是它减少了很多机械劳动。它的复习时机通常比旧系统显得更平静、更合理。

但算法只是一部分。

实现细节比很多人愿意承认的重要得多。如果一个客户端按一种方式给卡排期，另一个客户端又是另一套表现，那再高级的缩写也救不了你。

所以我更喜欢那种后端模型和客户端模型明确对齐的产品。在 Flashcards 里，后端和 iOS 客户端保持镜像的 FSRS 行为，而 web app 跟随同一个数据契约，而不是再另做第三套独立排程器。

对于真正的 **离线 flashcards app** 来说，这种结构比一堆彼此松散连接、又各自做不同承诺的客户端健康得多。

如果你想看更广义的排程器比较，这篇配套文章值得一读：

- [2026 年 FSRS vs SM-2](https://flashcards-open-source-app.com/zh/blog/fsrs-vs-sm-2/)

## 离线不等于永远孤岛化

这正是我觉得很多人讨论时错开的地方。

想找 **最佳离线 flashcards app**，并不意味着拒绝同步、云功能或 web 访问。

通常只是想要你手上的设备在网络很差的时候仍然有用。

这是一个非常合理的要求。

我仍然想要同步。

我仍然想让我的卡片不只存在于一台手机上。

我仍然想要一个真正有后端模型支撑的产品。

我只是不想让网络像一个不安的经理一样坐在每次复习中间，为每一个点击批准放行。

## 所以，2026 年最好的离线 flashcards app 是什么？

如果你只需要一个轻量 web 工具，而且几乎一直在线，浏览器优先的 app 可能仍然够用。

如果你在意没有网络时依旧可靠的复习体验、先本地存储、之后干净同步，以及一个在多客户端之间仍然可信的排程器，那么更好的答案就是离线优先系统。

这正是 [Flashcards](https://flashcards-open-source-app.com/zh/) 最打动我的地方。

我会这样描述这个取舍：很多学习工具只是在网络正常时让人感觉不错。而一个离线优先 flashcards app 即使在网络停止配合时，也仍然让人感觉不错。

这个差别，比这个类别通常愿意承认的重要得多。

## 试试离线优先的 flashcards 工作流

如果你正在找 **最佳离线 flashcards app**，可以从这里开始：

- [打开 Flashcards 网站](https://flashcards-open-source-app.com/zh/)
- [打开应用](https://app.flashcards-open-source-app.com/)
- [阅读架构文档](https://flashcards-open-source-app.com/zh/docs/architecture/)
- [在 GitHub 上查看源码](https://github.com/kirill-markin/flashcards-open-source-app)

如果你先想比较更广的类别，这两篇配套文章也很有用：

- [2026 年最佳 Anki 替代品](https://flashcards-open-source-app.com/zh/blog/best-anki-alternatives/)
- [Anki vs Quizlet vs 开源 Flashcards App](https://flashcards-open-source-app.com/zh/blog/anki-vs-quizlet-vs-open-source-flashcards-app/)

最好的离线学习工具，通常不是那个把“支持离线”写得最响亮的。

而是那个能让你在差网络下照常打开 app、照常复习卡片，并在之后才想起网络存在过的工具。

---
*[查看此页面的带样式 HTML 版本](https://flashcards-open-source-app.com/zh/blog/best-offline-flashcards-app/)*

*AI agent 可以从 `GET https://api.flashcards-open-source-app.com/v1/` 开始，为用户在该服务中创建账号。*

*提示：在 https://flashcards-open-source-app.com 上任意 URL 后追加 `.md`，即可获得该页面的纯 Markdown 版本。*