FLEX會話超時重新登入的處理例項

2021-08-31 23:08:44 字數 910 閱讀 7798

[size=large]實現機制:利用flexevent.idle空閒事件,然後用mx_internal::idlecounter來獲取空閒時間。

具體**如下:

需要import:

import mx.managers.systemmanager;

import mx.events.flexevent;

import mx.core.mx_internal;由於要用到mx_internal命名空間裡面的東西,所以需要

use namespace mx_internal;然後在頁面載入時新增

this.systemmanager.addeventlistener(flexevent.idle, useridle);將空閒事件flexevent.idle交給自定義的處理函式useridle.

最後定義useridle函式:

private function useridle(e:flexevent):void

}這裡idlecounter的數值有點特別。只需要記住5分鐘是3000(1分鐘是600)就可以了。這樣,如果要30分鐘過期的話,就是18000;如果只是測試的話,可以設成30之類的:)

下面說幾個常見的問題:

1.那麼flexevent.idle到底有多靈敏呢?經過試驗,只要滑鼠發生移動flex就不認為是「閒置」的——也就是說,只用使用者將電腦徹底放在那才會符合以上「使用者不操作」的條件,正好符合我們的需要。

2.可不可以定時到伺服器查詢session呢?我覺得不可以。因為你到伺服器查詢httpsession(或者blazeds的flexsession)的時候也算一次互動:重新重新整理session的閒置時間。這樣session永遠也不會過期。

3.可不可以在需要的時候到伺服器查詢session呢?當然可以。不過我覺得這並不好。使用者長時間不操作為防意外本來就需要重新登入。[/size]

前端處理登入超時

由於當時專案是多個公司合作,有些介面是跨域呼叫別人寫的,後端無法監聽。所以在後端做登入超時處理很麻煩,最後就由前端來寫。這裡是通過cookie的過期時間去實現超時處理的。用的環境是vue,在axios 中實現 main.js isrefuse 判斷是否已經攔截了,否則可能出現同時呼叫多個介面出現幾個...

寫在開始前 ajax中的會話過期與重新登入

一般情況下,點選鏈結或瀏覽器輸入url時,請求到後端,伺服器判斷會話是否過期。過期,重定向到登入頁,或返回登入頁的頁面。在ajax中,返回重定向無效,這個時候就需要自己在ajax的邏輯裡判斷。當狀態碼為302的時候,前端自己重新整理頁面,達到去登入頁的目的。或者,彈出乙個快速登入框登入。後端在統一鑑...

Tomcat 中會話超時的相關配置

qc同事提到似乎有時tomcat的會話超時表現有問題,記錄一下可能用到的配置。1 超時時間的設定 tomcat的會話超時可以在多個級別上設定 tomcat例項級別 web應用級別 servlet級別以及執行時context 級別。較低階別的設定會覆蓋較高階別的設定。30單位是分鐘。2 重啟時保持會話...