gpt4 book ai didi

javascript设置间隔 session 管理

转载 作者:行者123 更新时间:2023-12-02 20:43:44 27 4
gpt4 key购买 nike

我正在开发一个基于 session 的项目。我在想,与银行类似,我会创建一张支票并为用户提供阻止 session 超时的能力。

我正在考虑创建一个 setInterval 来检查需要身份验证的空白页面。如果计时器接近结束时间,它会弹出一个对话框,通知用户 session 即将结束。 “保持登录”按钮将重置计时器,并且还会向他们提供注销选项。如果设置的时间间隔从检查器页面获取“401”,则当前页面将刷新到登录屏幕。

这有道理吗? setInterval 会让浏览器陷入困境吗?

顺便说一句:基于用户交互来清除间隔的最简单方法是什么?我需要检查每个按键和/或鼠标事件吗?或者是否有更广泛的方法来检查用户是否正在与页面交互(例如焦点检查或其他)?

短歌。

<小时/>

所以,我使用的框架存在一些问题。 session 处理不是很好,因此更新 session 超时而不是始终基于登录后的时间超时似乎存在问题,而不是自上次事件以来。无论如何,已经处理好了。我现在想知道的问题是,通过检查 session 是否仍然通过 setInterval 进行身份验证, session 将通过检查进行更新,因此 session 永远不会超时。或者,我错过了什么吗?

<小时/>

我决定只用 JavaScript 来处理它。在框架配置中将超时设置为 never,并专门使用 setTimeout 处理超时。

function alerter(msg){
//warn user session about to expire; give opportunity to save
}
function killSess(){
window.location = '/logout';
}
function sessTimer(time){
timerID = window.setTimeout('killSess();',time);
}
function observe(div){
Event.observe(div, 'click', function(){
clearTimeout(timerID);
sessTimer(30000);
});
Event.observe('bodyDiv', 'keydown', function(e){
clearTimeout(timerID);
sessTimer(30000);
});
}

最佳答案

Does this make sense? Would the setInterval bog down the browser?

这应该可以正常工作。只要间隔相当大(几秒到一分钟)并且每次迭代不会增加全局数据结构的大小,我预计它不会使浏览器陷入困境。

As an aside: what is the easiest way to clearInterval based on user interaction? Would I need to check for every keypress, and/or mouse event? Or is there a broader way of checking if the user is interacting with the page (like a focus check or something)?

也许向顶级页面元素(例如容器 div)添加一些事件处理程序可能会有所帮助。

关于javascript设置间隔 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1840990/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com