javascript - 使用本地存储在每个新会话上重置变量
问题描述
我试图在跨越多个页面的用户会话开始时只运行一次。
我试图使用 sessionStorage 来测试是否存在最初默认为 false 的变量,但由于脚本中的 JavaScript 重定向,它不会在某些浏览器中持续存在:
window.location.href
有没有办法用更可靠的本地存储来模仿这一点?
即在每个新用户会话开始时只做一次。会话可能有多个页面,因此单个 javascript 变量将不起作用。
更新:根据评论中的要求,基本逻辑是:
- 新会话打开。
- 重定向一次到查看的最后一页。
- 设置重定向为真。以防止这种情况再次发生。
我意识到除了本地存储之外还有其他方法可以做到这一点。如果可能的话,使用它会很好。
解决方案
您可以检查该项目是否已经存在或者它是否为空:
localStorage.getItem("itemname");
如果它不存在(== null),则它是第一个“运行”,因此您可以设置它以防止进一步循环执行。利用:
localStorage.setItem("itemname", "notNull");
推荐阅读
- c# - 是否有根据不同条件从集合中获取元素/变量的最佳实践
- facebook-graph-api - facebook api 活动时间范围
- javascript - 为什么即使我正确输入了我的基本代码,我的注册页面也不起作用
- java - 如何让两个 dockerized 应用程序在给定端口上通信?
- r - R:润滑输出格式 DMY
- java - 我们可以在一个项目中同时使用 Java Spring mvc 和 Spring Boot 吗?
- python - 谁能建议一种更快的方法来创建这个数组?
- django - Reactjs SPA 在拆分代码后停止工作,(静态包未从 AWS S3 加载)
- javascript - 使用 fetch 检查图像是否存在(函数不返回响应)
- angular - How to change order of a drag and drop list in Angular Material with up or down buttons?