我们的网站上有一个表格,用户可以在其中填写和提交。有时,他们填写表格的时间比我们 20 分钟的会话超时时间还要长。
因此,我编写了在超时前 2 分钟弹出一条消息以警告用户的功能,并提供保存和继续选项(更新会话)。如果留下警告,它将自动保存他们的工作并在 2 分钟后将其注销。
如果该消息被忽略,它会自动保存工作并将它们正常注销。如果他们单击保存并继续,则保存正常,并且消息会在再过 20 分钟后弹出(在测试时我已经减少了时间),但是,随后的时间, 如果是,它不会在再过 2 分钟后将它们注销忽略。
这是我编写的 JavaScript。任何人都可以看到任何问题吗?
init();
onLoad
在<body>
标签中调用。
var logoutTimer = setTimeout('saveAndLogOut();', 1000 * 60 * 1.5);
function init() {
setTimeout('expirationWarning();', 1000 * 60 * 1);
logoutTimer;
}
function expirationWarning() {
$('#session-expiry-warning').dialog({
show: 'fade',
hide: 'fade',
title: 'Your session is about to expire...',
buttons: {
"Save and Continue": function() {
ajaxSave('saved');
clearTimeout(logoutTimer);
init();
$(this).dialog("close");
}
},
width: 550,
closeOnEscape: false,
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
});
}
function saveAndLogOut() {
ajaxSave('autosaved');
setTimeout("parent.document.location.href = '../logout.asp';", 5000);
}
提前致谢。