允许用户在会话结束前保存

时间:2013-07-12 17:47:55

标签: c# javascript asp.net

如果用户看到警报,我需要提醒用户会话即将过期并让他们保存会话数据如果他碰巧点击警报框,则会话刷新。但如果用户我嗤之以鼻并在一段时间后回来,我希望他看到会话过期页面而不是弹出或点击弹出重定向会话过期页面。 下面的代码是我尝试过的,我是javascript和web应用程序的新手并且卡住了。请指导我。提前谢谢你

  function timeTicker() {
        idleTime = idleTime + 1;
        if (idleTime = 30) {
            resetTimer;
            window.clearInterval(timerId);
        }

        if (idleTime == 28) {
            window.alert("You have been idle for over 28 mins; your session will expire in next 2 mins, Please save any unsaved data.");

        }

    }

    function resetTimer() {
        idleTime = 0;
    }

    var timerId = window.setInterval(timeTicker, 60000);
    var idleTime = 0;
    var closeWindow = false;
    window.onload = resetTimer;
    //document.onmousemove = resetTimer;
    document.onkeypress = resetTimer;

2 个答案:

答案 0 :(得分:1)

alert()阻止执行。您需要使用非阻塞消息,例如位于页面中间的div,使用css或jQuery对话框。

此外,您的代码中包含错误:

if (idleTime = 30) {正在为idleTime分配30。您需要if (idleTime == 30) {,但我可能会将其更改为if (idleTime >= 30) {

如果idleTime为30或更高,我还认为你需要重定向和注销用户,而不是清除定时器间隔。

答案 1 :(得分:0)

只有用户可以在打开后关闭警告对话框。如果在会话到期后隐藏警报消息是必需的,则除警报对话框外,还必须以其他方式显示警报消息。例如,您可以使用jQuery UI创建包含警报消息的弹出对话框消息。一旦完整的tiemout期结束,您就可以关闭弹出窗口并显示Session Expired消息。