2013-03-11 137 views
1

我看了各种jQuery,ajax,图像重新加载实现,并尝试所有。他们都没有为我工作。保持会话活着MVC3

我想在下面的代码片段中实现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"); 
} 

回答

5

你的心跳应该能够保持会话活着的Ajax请求,但我也将确保它不记录最后的时间戳火一关,每点击按键(最初的页面加载时间),并且不会触发另一个Ajax请求直到接近会话或者形成身份验证超时(如果您使用表单身份验证)。

+0

谢谢杰夫!我正在实施ajax部分错误。 – paaone 2013-03-11 17:35:04