【发布时间】:2017-11-19 23:25:14
【问题描述】:
我的项目要求在会话到期之前通知用户会话到期。我已经使用 setTimeout 在 jquery 中实现了这一点。它工作正常,直到用户在单个选项卡中工作。如果多个选项卡保持打开状态,就会出现问题。在这种情况下,即使用户正在处理一个选项卡,因为其他选项卡处于非活动状态,警报也会显示在这些非活动选项卡上。这不应该发生,因为用户在一个选项卡上处于活动状态。
我正在使用类似下面的代码:
function SessionExpireAlert() {
var timeout = 20000;
var seconds = timer / 1000;
document.getElementsByName("seconds").innerHTML = seconds;
setInterval(function () {
seconds--;
document.getElementById("seconds").innerHTML = seconds;
},1000);
setTimeout(function () {
//Show Popup before 20 seconds of timeout.
$find("mpeTimeout").show();
}, timeout - 19 * 1000);
setTimeout(function () {
window.location = "Default.aspx";
}, timeout);
};
function ResetSession() {
//Redirect to refresh Session.
window.location = window.location.href;
}
function ResetTimers() {
clearTimeout(seconds);
SessionExpireAlert
}
如果有任何建议,我都会很高兴...
【问题讨论】:
-
那么,警报应该只显示在活动标签中吗?其他非活动标签应该如何处理?
-
是的,因为用户在一个选项卡上处于活动状态,其他选项卡不应显示警报。如果用户在所有选项卡上都处于非活动状态,则警报应以同步方式以相同的时间显示在所有选项卡上。
标签: c# jquery .net session webforms