如何在用户离开页面时清除sessionStorage?
简便实现离开页面删除指定sessionStorage项
嘿,这个需求其实完全不用搞复杂的AJAX,直接结合beforeunload事件和原生sessionStorage API就能轻松搞定,代码超简洁:
$(window).on("beforeunload", function() { // 精准删除你存的那个'save'项 sessionStorage.removeItem('save'); // 要是之后有清空所有sessionStorage的需求,也可以用这个: // sessionStorage.clear(); });
为什么这个方案更合适?
beforeunload事件会覆盖所有用户离开页面的场景:关闭标签页、刷新页面、跳转其他链接、甚至浏览器崩溃前的最后触发(部分场景)sessionStorage.removeItem()是原生标准API,专门用来删除指定键的存储数据,执行效率高,完全不需要额外的异步请求开销
小补充
如果你不需要在用户离开时弹出确认提示框(原代码里return "xxx"就是干这个的),可以直接去掉return语句,这样用户离开页面时不会被弹窗打扰,体验更顺畅。
内容的提问来源于stack exchange,提问作者m0a
相关产品推荐
相关产品推荐

