会话超时不';不能使用javascript工作
我有下面的脚本。当时间为60秒或更短时,弹出窗口出现(询问用户是否注销或继续),当我从弹出窗口的按钮单击继续时,它将重新加载页面。问题是它有时会注销。不确定下面的代码有什么问题。任何帮助都是值得的会话超时不';不能使用javascript工作,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,我有下面的脚本。当时间为60秒或更短时,弹出窗口出现(询问用户是否注销或继续),当我从弹出窗口的按钮单击继续时,它将重新加载页面。问题是它有时会注销。不确定下面的代码有什么问题。任何帮助都是值得的 var startTime = new Date(); var endTime = new Date(startTime.getTime() + (@FormsAuthentication.Timeout.TotalMilliseconds)); var i = 0; function update
var startTime = new Date();
var endTime = new Date(startTime.getTime() + (@FormsAuthentication.Timeout.TotalMilliseconds));
var i = 0;
function updateTimeoutDuration() {
var diff = Math.floor((new Date() - endTime) / 1000) * -1;
if (diff > 0) {
minutes = Math.floor(diff / 60);
seconds = Math.floor(diff % 60);
$('#timeout-countdown #remaining-time').html(((minutes < 10) ? '0' : '') + minutes + ':' + ((seconds < 10) ? '0' : '') + seconds);
console.log("Timeout - countdown",((minutes < 10) ? '0' : '') + minutes + ':' + ((seconds < 10) ? '0' : '') + seconds);
$('#dialog-timeout-confirm #timeout-countdown-popup #remaining-time-popup').html(((minutes < 10) ? '0' : '') + minutes + ':' + ((seconds < 10) ? '0' : '') + seconds);
// popup message will display when 60 sedconds remaining
if (diff < 60) {
// Autometically logged out when 0 second when timer will reach to 0 second
if (diff < 1) {
$("#logoutfrm").submit();
}
$('#timeout-countdown #remaining-time').addClass('warning');
$('#dialog-timeout-confirm #timeout-countdown-popup #remaining-time-popup').addClass('warning');
//Popup message will open
if (i == 0) {
i = 1;
popupMessage();
}
i = 1;
}
}
else {
window.location.href = '@FormsAuthentication.LoginUrl' + '?redirectUrl=' + encodeURIComponent(window.location.pathname);
}
}
$(function () {
setInterval(updateTimeoutDuration, 1000);
});
function popupMessage()
{
$("#dialog-timeout-confirm").dialog({
resizable: false,
height: 240,
modal: true,
buttons: [
{
text: "Log out",
"class": 'popup_logoutbtn',
click: function() {
var logoutfrm = document.getElementById('logoutForm');
if(logoutfrm != undefined && logoutfrm != null && logoutfrm != ''){
//logoutfrm.submit();
$("#logoutfrm").submit();
}
else{
window.location.href = '@FormsAuthentication.LoginUrl' + '?redirectUrl=' + encodeURIComponent(window.location.pathname);
}
}
},
{
text: "Stay Logged In",
"class": 'popup_staylogoutbtn',
click: function() {
location.reload();
}
}
]
});
}
var startTime=new Date();
var endTime=新日期(startTime.getTime()+(@FormsAuthentication.Timeout.totalmillizes));
var i=0;
函数updateTimeoutDuration(){
var diff=数学楼层((新日期()-endTime)/1000)*-1;
如果(差异>0){
分钟=数学楼层(差异/60);
秒=数学地板(差异%60);
$(“#超时倒计时#剩余时间”).html(((分钟<10)‘0’:“”)+分钟+’:‘+((秒<10)‘0’:“”)+秒);
log(“超时-倒计时”,((分钟<10)'0':')+分钟+:'+((秒<10)'0':')+秒);
$(“#对话框超时确认#超时倒计时弹出窗口#剩余时间弹出窗口”).html(((分钟<10)‘0’:“”)+分钟+’:‘+((秒<10)‘0’:“”)+秒);
//剩余60秒时将显示弹出消息
如果(差值<60){
//当计时器达到0秒时,自动注销
如果(差值<1){
$(“#logoutfrm”).submit();
}
$(“#超时倒计时#剩余时间”).addClass('warning');
$(“#对话框超时确认#超时倒计时弹出窗口#剩余时间弹出窗口”).addClass('warning');
//弹出消息将打开
如果(i==0){
i=1;
弹出消息();
}
i=1;
}
}
否则{
window.location.href='@FormsAuthentication.LoginUrl'+'?重定向URL='+encodeURIComponent(window.location.pathname);
}
}
$(函数(){
setInterval(updateTimeoutDuration,1000);
});
函数popupMessage()
{
$(“#对话框超时确认”)。对话框({
可调整大小:false,
身高:240,
莫代尔:是的,
按钮:[
{
文本:“注销”,
“类”:“popup\u logoutbtn”,
单击:函数(){
var logoutfrm=document.getElementById('logoutForm');
如果(logoutfrm!=未定义&&logoutfrm!=空&&logoutfrm!=''){
//logoutfrm.submit();
$(“#logoutfrm”).submit();
}
否则{
window.location.href='@FormsAuthentication.LoginUrl'+'?重定向URL='+encodeURIComponent(window.location.pathname);
}
}
},
{
文本:“保持登录”,
“类”:“弹出窗口”,
单击:函数(){
location.reload();
}
}
]
});
}
不确定,但如果这是一个问题,我假设该页面可能由用户在后台打开。如果他在60秒内没有看到弹出窗口,当他点击时就太晚了…没有一个页面是打开的。在其他浏览器中不会打开其他页面。而且它发生在11秒左右