使用 localstorage 可实现无服务器草稿自动保存:监听 input 事件实时存 draft,页面加载时读取恢复并提示,提供手动清空入口;需检测兼容性、处理存储上限及跨域限制。

用 BOM(Browser Object Model)中的 localStorage 就能轻松实现草稿自动保存,不需要服务器,关掉页面再打开也能恢复内容。
监听输入并实时存入 localStorage
在文本区域(如 <textarea id="editor"></textarea>)上绑定 input 事件,每次用户打字就立刻保存当前值:
- 用
localStorage.setItem('draft', value)存字符串 - 推荐加时间戳或最后修改时间,方便后续判断是否过期(可选)
- 避免高频触发影响性能?可以加个 300ms 防抖,但对草稿来说直接存也完全没问题
页面加载时自动恢复草稿
在 window.onload 或 DOM 加载完成后读取 localStorage 并填充到编辑区:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 用
localStorage.getItem('draft')获取值 - 如果存在且不为空,就赋给
textarea.value - 建议加个提示(比如小 toast)告诉用户“已恢复上次编辑的草稿”
提供手动清空草稿的入口
用户可能写完提交了,或者想放弃草稿,需要主动清除:
- 加一个按钮,点击后执行
localStorage.removeItem('draft') - 同时清空 textarea 内容,并更新 UI 状态(比如隐藏提示)
- 也可以在表单成功提交后自动清理,避免残留
注意兼容性和边界情况
localStorage 虽然主流浏览器都支持,但仍有细节要处理:
- 检查是否可用:
if (typeof localStorage !== 'undefined'),防止禁用或隐私模式下报错 - 超过 5MB 会抛
QuotaExceededError,大文本建议截断或压缩(比如只存最近 10000 字) - 不同域名、协议、端口之间 localStorage 不共享,确保开发和线上环境一致
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










