gpt4 book ai didi

javascript - 显示倒计时时间形式 jquery session 超时

转载 作者:行者123 更新时间:2023-11-30 07:08:53 24 4
gpt4 key购买 nike

我找到了 https://github.com/travishorn/jquery-sessionTimeout我想在我的项目中使用的这个 jquery session 超时。

虽然我想在文本中显示倒计时时间,但它在后台看起来工作正常?

我怎样才能显示计时器,或者除此之外你们还有其他建议吗?

(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('<div title="Session Timeout" id="sessionTimeout-dialog">'+ o.message +'</div>');
$('#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示例。

关于javascript - 显示倒计时时间形式 jquery session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20700008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com