显示倒计时时间表jquery会话超时
我找到了https://github.com/travishorn/jquery-sessionTimeout这个我想在我的项目中使用的jquery会话超时。
它看起来在背景中工作得很好,尽管我想在文本中显示倒计时时间?
如何显示计时器 ,或者你们除了这个以外还有其他建议吗?
(function( $ ){ jQuery.sessionTimeout = function( options ) { var defaults = { message : 'Your session is about to expire.', keepAliveUrl : '/keep-alive', redirUrl : '/timed-out', logoutUrl : '/log-out', warnAfter : 900000, // 15 minutes redirAfter : 1200000 // 20 minutes }; // Extend user-set options over defaults var o = defaults, dialogTimer, redirTimer; if ( options ) { o = $.extend( defaults, options ); } // Create timeout warning dialog $('body').append(''+ o.message +''); $('#sessionTimeout-dialog').dialog({ autoOpen: false, width: 400, modal: true, closeOnEscape: false, open: function() { $(".ui-dialog-titlebar-close").hide(); }, buttons: { // Button one - takes user to logout URL "Log Out Now": function() { window.location = o.logoutUrl; }, // Button two - closes dialog and makes call to keep-alive URL "Stay Connected": function() { $(this).dialog('close'); $.ajax({ type: 'POST', url: o.keepAliveUrl }); // Stop redirect timer and restart warning timer controlRedirTimer('stop'); controlDialogTimer('start'); } } }); function controlDialogTimer(action){ switch(action) { case 'start': // After warning period, show dialog and start redirect timer dialogTimer = setTimeout(function(){ $('#sessionTimeout-dialog').dialog('open'); controlRedirTimer('start'); }, o.warnAfter); break; case 'stop': clearTimeout(dialogTimer); break; } } function controlRedirTimer(action){ switch(action) { case 'start': // Dialog has been shown, if no action taken during redir period, redirect redirTimer = setTimeout(function(){ window.location = o.redirUrl; }, o.redirAfter - o.warnAfter); break; case 'stop': clearTimeout(redirTimer); break; } } // Begin warning period controlDialogTimer('start'); }; })( jQuery );
这是工作样本=> http://jsfiddle.net/xHEF9/515/
试试这个
var SessionTime = 10000; var tickDuration = 1000; var myInterval = setInterval(function() { SessionTime = SessionTime - tickDuration $("label").text(SessionTime); }, 1000); var myTimeOut = setTimeout(SessionExpireEvent, SessionTime); $("input").click(function() { clearTimeout(myTimeOut); SessionTime = 10000; myTimeOut = setTimeout(SessionExpireEvent, SessionTime); }); function SessionExpireEvent() { clearInterval(myInterval); alert("Session expired"); }
看到这个jsFiddle示例。
- 获取突出显示的文本
- 使用json传递窗口小部件数据并保存到数据库
- 如何在没有使用jQuery的MultiSelectBox的情况下在ASP MVC中实现EF多对多的关系?
- 没有Updatepanel / with jQuery的ASP.NET部分页面上传
- 如何使用jQuery禁用div或表中的所有Element
- 如何使用jQuery计算asp.net中gridview中的行数
- 来自AJAX请求的jqPlot ASP.NET中的dataRender
- jQueryvalidation:$ .data($(’form’),’validator’)。settings返回undefined
- 如何在C#中的jQuery Dialog中从GridView获取值