期限切れになる前にセッションの有効期限をユーザーに通知する必要がありました。私はsetTimeoutを使ってこれをjqueryで実装しました。ユーザーが1つのタブで作業するまではうまく動作します。この問題は、複数のタブが開いたままになっている場合に発生します。この場合、他のタブが非アクティブなのでユーザーがタブで作業していても、非アクティブなタブにはアラートが表示されます。ユーザーが1つのタブでアクティブになっているため、これは発生しません。asp.net webformsでセッションの有効期限を通知する
私はコードの下のようなものを使用しています。私の意見では
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
}
私はこの内の任意の提案のために幸せになります...
したがって、アラートはアクティブなタブにのみ表示されますか?他の非アクティブなタブではどうなりますか? – Catalyst
はい、ユーザーがタブ上でアクティブなので、他のタブはアラートを表示しません。ユーザーがすべてのタブで非アクティブになっている場合、アラートはすべてのタブで同じタイミングで同期的に表示されます。 – ManojK