-1

我需要提醒用户会话即将到期并让他们保存会话数据,如果用户看到警报如果他碰巧单击警报框,会话会刷新。但是如果用户我在附近流鼻涕并在一段时间后回来,我希望他看到会话过期页面并且不弹出或单击弹出重定向会话过期页面。下面的代码是我尝试过的,我对 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;
4

2 回答 2

1

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

此外,您的代码中有错误:

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

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

于 2013-07-12T17:55:20.637 回答
0

只有用户可以在打开警报对话框后关闭它。如果需要在会话到期后隐藏警报消息,那么您的警报消息必须以除警报对话框之外的其他方式显示。例如,您可以使用 jQuery UI 创建一个包含警报消息的弹出对话框消息。一旦完整的 tiemout 期限过去,您将能够关闭弹出窗口并显示 Session Expired 消息。

于 2013-07-12T17:55:06.350 回答