我研究了各种 jquery、ajax、图像重新加载实现并尝试了所有这些。他们都没有为我工作过。
我正在尝试在以下代码片段中实现 heartbeat() 函数。只要用户在页面上键入或单击,此心跳就需要使我的 session 保持事件状态。它应该在设置的时间后超时并自动将用户重定向到登录页面。
我遇到的问题是,即使它没有将用户重定向到登录页面,但当用户单击表单上的“提交”时,由于 session 已超时,它会将用户重定向到登录页面。
document.onkeypress = function(e) {
heartbeat();
clearTimeout(timer);
timer = setTimeout('RedirectToWelcomePage()',parseInt(sessionTimeout) * 30 * 1000);
};
document.onclick = function(e) {
heartbeat();
clearTimeout(timer);
timer = setTimeout('RedirectToWelcomePage()',parseInt(sessionTimeout) * 30 * 1000);
};
function heartbeat() {// need to implement
}
function RedirectToWelcomePage()
{
window.location.replace("/Account/LogOn");
}
最佳答案
您的心跳应该能够通过 ajax 请求保持 session 处于事件状态,但我也会通过记录最后一次的时间戳(最初是页面加载时间)来确保每次单击和按键时它不会触发一次,并且在接近 session 或表单例份验证超时之前不会触发另一个 ajax 请求(如果您使用表单例份验证)。
关于asp.net-mvc-3 - 保持 session 事件 MVC3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339798/