代码丢失时先区分“没保存”还是“被删了”:前者因localstorage未防抖、键名冲突或恢复时机错(需domcontentloaded后执行),后者可从回收站、git、浏览器elements或数据恢复工具找回;混合状态如光标、折叠行须用编辑器api单独序列化。

代码丢失时,别急着重写——先判断是“没保存”还是“被删了”,恢复路径完全不同。
编辑器里刚写的代码刷新就没了
这是 localStorage 草稿没存上或没读回来。常见原因有三个:
- 没加防抖:
input事件在中文输入法下会高频触发,直接存localStorage.setItem("draft", el.value)可能存入半截拼音或卡顿,必须加500ms防抖 - 键名冲突:多个编辑页共用
"editor-draft",后开的页面会覆盖前一个;建议用"editor-draft-${location.pathname}"隔离 - 恢复时机错:DOM 还没加载完就执行
document.getElementById("code-editor").value = draft,结果getElementById返回null;必须等DOMContentLoaded后再读取并赋值
本地 index.html 文件被删了还能找回来吗
能,但方法取决于你删完之后干了什么:
- 回收站/废纸篓还在:直接右键还原,文件原样回来,不用任何工具
- 清空了回收站但没往磁盘写新数据:用
Recuva或PhotoRec扫描,重点搜特征头;恢复路径不能选原盘,否则刚扫出来的文件可能被覆盖 - 项目有 Git:进根目录运行
git status,看到deleted: index.html就执行git checkout -- index.html(注意路径要写全,比如src/index.html) - 网页还能打开:F12 → Elements → 右键
→ “Edit as HTML” → 全选复制 → 新建文本文件粘贴保存为index.html,编码选 UTF-8 无 BOM
浏览器里运行时白屏或报错,代码疑似“消失”
不是代码丢了,是解析失败或执行中断。先看控制台红字报错,再按顺序排查:
- 检查协议:双击打开的
file://页面,fetch、import会被拦截,改用npx serve或 VS Code Live Server 启 HTTP 服务 - 验证结构:确认开头有
,且 <code>、、成对闭合;缺一个就可能导致整个 DOM 不渲染 - 禁用扩展:某些广告屏蔽或脚本管理插件会静默拦截
<script></script>,在隐身窗口测试可快速排除 - 清缓存:Ctrl+Shift+Delete 清“缓存的图像和文件”,时间范围选“所有时间”
真正麻烦的是混合状态——比如光标位置、折叠行、错误标记,这些没法靠 localStorage 字符串自动恢复,得配合编辑器 API 单独序列化。草稿保得住,但“所见即所得”的交互态,得一层层拆开存。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











