如何在會話過期後自動重定向頁面,而無需在頁面上執行任何用戶操作。會話過期後自動重定向
1
A
回答
6
創建一個活動檢查器,該活動檢查器每隔一分鐘檢查是否發生了任何用戶活動(mouseclick,keypress),並向服務器端執行檢測信號,以便在用戶處於活動狀態時保持會話活動狀態,而當用戶不活動時不執行任何操作活性。當30分鐘內沒有活動(或者在服務器端設置了默認的會話超時時間)時,請執行重定向。
下面是一個啓動示例,幾乎沒有jQuery的幫助來綁定點擊和按鍵事件並激發ajax請求。
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$.active = false;
$('body').bind('click keypress', function() { $.active = true; });
checkActivity(1800000, 60000, 0); // timeout = 30 minutes, interval = 1 minute.
});
function checkActivity(timeout, interval, elapsed) {
if ($.active) {
elapsed = 0;
$.active = false;
$.get('heartbeat');
}
if (elapsed < timeout) {
elapsed += interval;
setTimeout(function() {
checkActivity(timeout, interval, elapsed);
}, interval);
} else {
window.location = 'http://example.com/expired'; // Redirect to "session expired" page.
}
}
</script>
創建Servlet
它偵聽/heartbeat
和做基本上只是執行以下操作:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
request.getSession();
}
保持會話活着。
+0
確實是你有史以來最好的答案之一,這應該在+1000 – 2013-05-17 16:12:38
相關問題
- 1. JSP在會話過期/超時後自動重定向
- 2. 會話過期後CakePHP重定向
- 3. 與後重定向會話過期
- 4. 自動重定向到登錄當會話過期
- 5. 會話在Backbone.js中過期後,如何自動重定向到登錄頁面?
- 6. Kohana 3.2.0 |如何在會話過期後添加自動重定向?
- 7. 會話過期時重定向 - [Magento]
- 8. Spring Security 3.0.5會話過期重定向
- 9. PHP會話過期重定向
- 10. 會話過期後自動註銷
- 11. 會話過期後自動註銷
- 12. 會話重定向laravel 4.2後會自動銷燬
- 13. 在會話過期後重定向到登錄頁面
- 14. 重定向到會話後,不同的頁面過期
- 15. 會話過期後Laravel重定向不工作
- 16. 如何在會話cookie過期後重定向到頁面?
- 17. Symfony重定向到會話過期後的登錄頁面
- 18. 如何在會話過期後重定向jsp頁面?
- 19. 會話過期後重定向到先前瀏覽的網頁
- 20. 檢查會話是否過期,然後重定向(Joomla)
- 21. 會話過期後自動重新登錄
- 22. 自動重定向到會話超時後登錄
- 23. ASP.NET在結束會話後沒有自動重定向到defaultURL
- 24. 春季安全會話過期時自動重定向到登錄4.1
- 25. 爲什麼會話會自動過期?
- 26. 條紋 - 重定向,到期會話
- 27. 重定向後丟失會話變量
- 28. passport.js會話重定向後丟失
- 29. 會話不工作後重定向
- 30. 會話丟失後重定向
這是頁面特定的超時還是隻是一般會話超時? I.E.從某人登陸頁面,啓動計時器或創建會話時,啓動計時器?你可以使用ajax來ping服務器來檢查。或者在每個頁面的基礎上設置元刷新時間? – Alex 2011-03-24 10:11:01
如果我每次打電話給ajax使用定時器和Ajax函數服務器會話將得到重新創建儀式..?我如何訪問會話變量與重新創建會話..? – SSN 2011-03-24 10:22:26
如果您在第一次啓動會話時創建會話變量,您可以隨時通過調用session_start()來檢查此變量計時器。然後檢查$ _SESSION ['timer'];定時器將不會被重置,直到你積極重置它 – Alex 2011-03-24 10:40:31