【发布时间】:2019-05-15 01:54:48
【问题描述】:
我试图在跨多个页面的用户会话开始时只运行一次。
我试图使用 sessionStorage 来测试是否存在最初默认为 false 的变量,但由于脚本中的 JavaScript 重定向,它不会在某些浏览器中持续存在:
window.location.href
有没有办法用更可靠的本地存储来模拟这一点?
即在每个新用户会话开始时只做一次。会话可能有多个页面,因此单个 javascript 变量将不起作用。
更新:按照cmets的要求,基本逻辑是:
- 新会话已打开。
- 重定向一次到最后查看的页面。
- 设置重定向为真。以防止这种情况再次发生。
我意识到除了本地存储之外还有其他方法可以做到这一点。如果可能的话,使用它会很好。
【问题讨论】:
-
你如何定义会话?在没有打开同一站点的其他页面时打开一个页面?长时间休息后打开页面?登录和注销之间的时间?还有什么?
-
您可能想要描述您想要存储的变量类型。或者改进您的业务逻辑,以便社区可以更好地帮助您。
-
通过分配给
location.href的 javascript 重定向不应丢弃会话。您在哪些浏览器中遇到过这种情况? -
@Bergi firefox 在我的 windows 7 firefox 61 上虽然它在 windows 10 上的 chrome 和 firefox 上运行良好
-
@exebook 更新
标签: javascript local-storage session-storage