SessionStorage 适合临时保存单次会话的搜索历史,关闭标签页后自动清空;1. 用 setItem 存字符串或 JSON.stringify 后的对象;2. 用 getItem 读取并 JSON.parse,需异常处理;3. 追加新记录时读取、unshift、slice 限条数再写回;4. 具有标签页隔离、不跨域、不持久、不安全等特点。

SessionStorage 可以在用户本次浏览会话中临时保存搜索历史,关闭标签页或浏览器后自动清空,适合轻量、单次会话的记录需求。
1. 用 setItem 存储单次搜索关键词
每次用户提交搜索时,把关键词存入 sessionStorage。注意:它只支持字符串,对象需先 JSON.stringify。
- 直接存字符串:sessionStorage.setItem('lastSearch', '手机')
- 存带时间的结构化数据:sessionStorage.setItem('searchHistory', JSON.stringify([{ keyword: '手机', time: Date.now() }]))
2. 用 getItem 读取并展示历史
页面加载或点击“查看历史”时,取出数据并渲染。记得做异常处理,避免解析失败崩溃。
批量分析录音转写,输出多维度拓客报告。触发词:录音分析、总结、音频总结、拜访记录总结。当用户提及「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图为批量统计/分析时触发。仅出现「录音」或「拜访」时需结合上下文,若仅查看单条详情则不触发。
- 获取历史列表:const history = JSON.parse(sessionStorage.getItem('searchHistory') || '[]')
- 安全遍历(确保是数组):Array.isArray(history) && history.forEach(item => console.log(item.keyword))
3. 追加新记录并限制条数(比如最多 5 条)
不要每次都覆盖,而是读出原数组、unshift 新项、再 slice 截取前 N 条,最后写回。
立即学习“Java免费学习笔记(深入)”;
- let list = JSON.parse(sessionStorage.getItem('searchHistory') || '[]');
- list.unshift({ keyword: '耳机', time: Date.now() });
- list = list.slice(0, 5); // 保留最新5条
- sessionStorage.setItem('searchHistory', JSON.stringify(list));
4. 注意事项
SessionStorage 是标签页级隔离的——新开一个标签页不会共享记录;也不跨域、不持久,关掉就消失。
- 不适用于需要多标签同步或长期保存的场景(考虑 localStorage 或后端)
- 敏感词(如用户手机号、地址)不要存,sessionStorage 不安全
- 移动端微信内置浏览器等环境兼容性良好,无需额外 polyfill

















