// FIELD_NOTE_20260824
Local-first:让数据先属于用户
离线优先不只是缓存策略,而是一种把所有权、延迟与可靠性重新交还给用户的产品哲学。
网络不应该是单点故障
我们曾把「在线」当作软件的默认前提。但真正可靠的工具,应该允许用户在地铁、飞机和信号边缘继续思考。
Local-first 的核心不是简单地写一句 localStorage.setItem(),而是建立一个清晰的数据协议:本地副本负责即时反馈,远端副本负责协作与恢复,冲突则由可理解的规则合并。
当延迟趋近于零,软件才重新像一件工具,而不是一个等待中的网页。
一个简单的延迟模型
如果一次操作依赖网络往返,那么体验成本可以写成:
Local-first 尝试把关键路径缩短为 ,其余工作在后台同步。
const saveDraft = async (draft: Draft) => {
await localStore.put(draft)
syncQueue.enqueue(draft.id)
}
真正困难的部分,是让同步状态可见、冲突可解释、失败可恢复。技术只是入口,信任才是产品。
讨论线程
0邮箱验证访客专属
正在读取讨论…
guest · verification required
分享图片 / 文件:先上传到「月品木子」网盘,再把生成的 ?q= 二字口令链接粘贴进来,会自动显示为取件卡片。
0 / 4000 字
附件下载
0附件存储于云端,支持大文件下载;带锁图标需作者指定的密码解锁后下载。