2008-09-05 102 views
0

我在瀏覽器中遇到的複雜任務中遇到的問題之一是自動超時。自動超時Web客戶端使用

目前我們的網站有30分鐘的過期期限。通常,這不是問題,因爲我們使用asp.net,大多數時候用戶更新一個或兩個字段,然後提交表單。這顯然會使會話保持活動狀態。我一直在努力處理這個問題,它需要更復雜的表單/用戶交互,如果沒有到服務器的往返旅程,很少。

現在,用戶可以查看報告,在我們的網站上輸入電子郵件等,我正在努力如何在他們實際使用瀏覽器時保持其會話活躍,但他們不主動發回信息。我會放棄滑動到期,但這是一個要求,所以我堅持下去。我們大部分的用戶都在組織之外,所以我不能使用任何形式的SSO

有沒有人有一個優雅的解決方案(我甚至會去一個醜陋的,如果它的作品),或者我運氣不好?

回答

2

我們最近在我的組織中經歷了這個。儘管這不是最好的解決方案,並且在多個瀏覽器窗口之間進行正確的會話非常困難,但我們在頁面上放置了一個倒數計時器,其中包含一個剛剛返回並按下服務器以重新啓動會話的按鈕,並且還向用戶用JavaScript彈出窗口(解決方案的用戶最喜歡的部分),並帶有一條消息,說明會話距離超時五分鐘,並點擊「確定」按鈕重新啓動。然後,按鈕將打到服務器重新啓動會話,重新啓動基本頁面上的計時器,關閉彈出窗口,基本頁面根本不需要刷新。

4

讓瀏覽器定期通過Ajax ping服務器以保持會話的活躍。大多數網站在這個ping中做一些有用的事情,比如保存用戶提交的草稿。

0

啊,這是一個古老的問題,因爲內存使用率較高,不想增加會話時間。

一個答案是也設置一個cookie,過了一天之後就會告訴系統仍然記住用戶。這就是eBay所做的,等等。

1

埃裏克森是在正確的軌道上。

由於「複雜的表單/用戶交互(如果沒有到服務器的往返次數很少的情況下很容易發生會話超時)」的站點區域上,您可以放置​​一個keepalive控件來保持對服務器的ping操作,從而保持會話活着。

Here是一個示例控件,您可以使用該示例控件或將其用作編碼自己的基礎。