2013-07-12 60 views
-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; 

回答

1

alert()塊執行。您需要使用非阻塞消息,如位於頁面中間的div,使用css或jQuery對話框。

此外,你必須在你的代碼中的錯誤:

if (idleTime = 30) {被分配30 idleTime。您需要if (idleTime == 30) {,但我可能會將其更改爲if (idleTime >= 30) {

我也認爲你需要重定向和註銷用戶,如果idleTime是30或更多,不清除計時器間隔。

0

只有用戶可以關閉警報對話框後,已打開。如果在會話過期後隱藏警報消息是一項要求,則除警告對話框外,還必須以其他方式顯示警報消息。例如,您可以使用jQuery UI創建一個彈出式對話框消息,其中包含警報消息。您將能夠關閉彈出窗口,並在完整的持續時間結束後顯示Session Expired消息。