如何向用户显示会话过期消息
How to show session expire message to User
我们必须显示一个弹出窗口给用户,当他的会话是30分钟不活动后过期,例如,如果用户不使用应用程序从最后30分钟,然后显示他们的消息,你的会话已过期。
我们在我们的应用程序中使用MVC c#和AngularJs,并使用表单认证cookie。由于会话位于服务器端,我们必须在客户端对此进行检查,如果我们执行任何Ajax命中来检查会话,那么会话将被重新创建并且永远不会过期。
我怎样才能做到这一点?
有两种方法可以实现
1)使用ng-Idle
,这里是观看演示和下载js文件的链接
var myApp = angular.module('myApp', ['ngIdle']); //inject ng-Idle in your app
myApp.config(['KeepaliveProvider', 'IdleProvider', function(KeepaliveProvider, IdleProvider) {
IdleProvider.idle(30);
IdleProvider.timeout(30);
KeepaliveProvider.interval(10);//check every 10 mins..
}]);
2)使用一点JQuery &Js
我认为下面这个小模板会给你想要的结果,即方法二。
var idleTime = 0;
$(document).ready(function () {
//Increment the idle time counter every minute.
var idleInterval = setInterval(timerIncrement, 60000); // 1 minute
//Zero the idle timer on mouse movement means some activity is going on .
$(this).mousemove(function (e) {
idleTime = 0;
});
$(this).keypress(function (e) {
idleTime = 0;
});
});
function timerIncrement() {
idleTime = idleTime + 1;
if (idleTime > 30) { // 30 minutes
//call your custom pop up to show user that he is inactive for 30 mins
window.location.reload();
}
}
希望这些方法能让你了解如何达到你的结果。
你应该在页面中有一个标签,在页面加载上设置这个标签为会话的分钟数,例如:30:00分钟。
现在您将创建一个函数,每秒减少计时器,遵循这个链接,看看如何输出一个简单的JavaScript倒计时计时器的计时器代码?
现在,您必须在每次向服务器发出请求时重置计时器,当页面加载时,JavaScript代码将触发具有计时器的标签将自动重置,但当有Ajax请求时不会发生这种情况。为此,你需要编写以下代码拦截JQuery的Ajax调用并在其中重置计数器,这段代码应该在布局中或布局
中加载的JavaScript文件中$( document ).ajaxSend(function() {
//Reset the counter here
});
相关文章:
- Laravel:在 ajax 请求的会话过期后重定向到登录
- 如何在Ruby on Rails会话过期时重新加载或刷新页面
- Node+Express会话过期
- 会话过期URL错误
- 会话在瓦丁中未过期
- 谷歌浏览器会话过期=空不起作用
- JavaScript 会话何时过期?如何在会话结束时删除 Cookie
- 显示会话过期消息
- 如何在会话过期时从 ajax 响应自动重定向网页
- Salesforce Streaming API:在会话过期后重新连接到Comed
- 扩展码点火器会话过期
- 如何使用JavaScript实现会话过期提醒
- 在浏览器中检查会话过期
- Navigator插件开发-会话过期
- 如何向用户显示会话过期消息
- Javascript在用户浏览器中保存表单值以防会话过期
- 当会话过期时,向JavaScript返回401
- Magento在会话过期后设置默认商店视图
- 当服务器会话过期时,使用javascript的settimeout()函数重定向到登录页面
- 当用户不活跃时,如何使PHP会话过期?