我已经查看了各种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");
}
答案 0 :(得分:5)
你的心跳应该能够通过ajax请求使会话保持活动状态,但我还要确保它不会通过记录最后一次(最初是页面加载时间)的时间戳来为每次点击和按键触发一次,并且不会触发另一个ajax请求,直到接近会话或表单身份验证超时(如果您使用表单身份验证)。