会话超时不';不能使用javascript工作

会话超时不';不能使用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

我有下面的脚本。当时间为60秒或更短时,弹出窗口出现(询问用户是否注销或继续),当我从弹出窗口的按钮单击继续时,它将重新加载页面。问题是它有时会注销。不确定下面的代码有什么问题。任何帮助都是值得的

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秒左右