可直接用 localstorage 存储用户上次查看控制台日志的时间戳,通过 date.now() 获取毫秒级时间戳并以 'console:lastseenat' 键名保存,读取后与每条日志时间对比标记“新日志”,仅在用户主动操作或页面卸载时更新,避免高频读写,注意私密模式兼容性及手动清理场景。

可以直接用 localStorage 存储用户上次查看控制台日志的时间戳,下次打开页面时读取并用于过滤或标记新日志。关键不是“记住日志内容”,而是“记住用户上次看到哪一刻”,从而实现类似“未读日志”或“增量日志高亮”的体验。
保存当前时间戳到LocalStorage
每当用户主动打开控制台(比如点击“查看日志”按钮)或页面加载完成时,记录当前时间戳:
- 使用
Date.now()获取毫秒级时间戳,数值小、易比较、无时区问题 - 存入 localStorage 时建议加命名空间前缀,避免键名冲突,例如:
console:lastSeenAt - 代码示例:
localStorage.setItem('console:lastSeenAt', Date.now().toString());
读取并判断日志是否为“新”
在生成或渲染每条日志前,先读取上次记录的时间戳,与日志自身时间对比:
- 从 localStorage 读取值后需转为数字:
const lastSeen = Number(localStorage.getItem('console:lastSeenAt') || '0'); - 若日志的
timestamp(也应是毫秒时间戳)大于lastSeen,就可标记为“新”——比如加class="new-log"或前置 ? 图标 - 注意:如果 localStorage 为空或非法值,
Number()会返回NaN,所以用|| '0'保证默认回退为 0
手动触发更新时机要合理
不要每次 console.log 都写 localStorage(性能差、违反同源策略限制),而应在用户明确行为后更新:
- 用户点击“标记为已读”按钮时更新时间戳
- 页面卸载前(
beforeunload)写入当前时间,作为“最后停留时刻” - 避免在高频操作(如滚动、输入)中频繁读写 localStorage,它同步阻塞主线程
兼容性与清理提醒
LocalStorage 在所有现代浏览器中均支持 HTML5 标准,但需注意:
- 私密模式下部分浏览器会禁用或清空 localStorage,可加 try-catch 包裹读写逻辑
- 用户手动清除网站数据时该时间戳会丢失,此时应视为首次访问,可显示提示:“检测到日志记录已重置”
- 不建议存储大量日志内容本身——localStorage 容量通常仅 5–10MB,且非设计用途;专注存“锚点时间”即可
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











