我正在實現一個功能,用戶在用戶會話即將過去一分鐘之前將會彈出一個彈出窗口。在彈出窗口中有兩個按鈕「確定」和「取消」。如果用戶點擊「確定」按鈕,則向服務器發出AJAX POST調用。 下面是我寫的代碼 -setTimeout變量值未定義
var sessionTimeoutWarning = parseInt(@Session.Timeout - 1);
var sessionTimeout = @Session.Timeout;
var sessionWarningTimer = null;
var sessionExpireTimer = null;
//For Session Expire Warning Popup
var sessionWarningTimer = setTimeout('startTimer()', parseInt(sessionTimeoutWarning) * 60 * 1000);
//For Session Expired Popup
var sessionExpireTimer = setTimeout('showLogoutModal()', parseInt(@Session.Timeout) * 60 * 1000);
function showLogoutModal() {
$("#session-expired-modal").modal('show');
}
function startTimer() {
$("#session-expire-warning-modal").modal('show');
var count = 60;
var timer = setInterval(function() {
$("#seconds-timer").html(count--);
if (count == -1) {
clearInterval(timer);
$(".modal-body").html("Your session is expired.");
}
}, 1000);
}
function executeAjaxCall() {
$.ajax({
url: '/Home/SessionTimeout',
dataType: "json",
async: false,
type: "POST"
});
}
$("#btnOk").click(function() {
executeAjaxCall();
$("#session-expire-warning-modal").modal('hide');
alert(sessionWarningTimer);
alert(sessionExpireTimer);
if(sessionExpireTimer != null)
{
alert("here");
clearTimeout(sessionExpireTimer);
}
//For Session Expire Warning Popup
var sessionWarningTimer = setTimeout('startTimer()', parseInt(sessionTimeoutWarning) * 60 * 1000);
//For Session Expired Popup
var sessionExpireTimer = setTimeout('showLogoutModal()', parseInt(@Session.Timeout) * 60 * 1000);
});
$("#btnExpiredOk").click(function() {
$("#session-expire-warning-modal").modal('hide');
$("#session-expired-modal").modal('hide');
window.location = "/Home/Index";
});
$("#session-expire-warning-modal").on("hidden.bs.modal", function() {
$("#session-expire-warning-modal").modal('hide');
});
$("#session-expired-modal").on("hidden.bs.modal", function() {
$("#session-expire-warning-modal").modal('hide');
$("#session-expired-modal").modal('hide');
window.location = "/Home/Index";
});
現在的問題是,AJAX是由sessionWarningTimer
和sessionExpireTimer
值後的undefined
。
請檢查@ Session.Timeout獲取價值? –
您在何處編寫此代碼?在JS文件或cshtml(剃鬚刀)? –
這段代碼如何寫入JS文件?當然這是在共享佈局視圖 – JJoe123