1

我查看了各种 jquery、ajax、图像重新加载实现并尝试了它们。他们都没有为我工作。

我正在尝试在以下代码片段中实现 heartbeat() 函数。只要用户正在键入或单击页面,此心跳就需要使我的会话保持活动状态。它应该在设置的时间后超时并自动将用户重定向到登录页面。

我遇到的问题是,即使它没有将用户重定向到登录页面,当用户单击表单上的“提交”时,由于会话超时,它会将他们重定向到登录页面。

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");
}
4

1 回答 1

5

您的心跳应该能够通过 ajax 请求使会话保持活动状态,但我还会通过记录最后一次的时间戳(最初是页面加载时间)来确保它不会在每次点击和按键时触发一次,而不是触发另一个 ajax 请求,直到接近会话或表单身份验证超时(如果您使用的是表单身份验证)。

于 2013-03-11T13:33:27.377 回答