瀏覽器關(guān)閉使session失效的問題多種解決方式
更新時(shí)間:2013年07月10日 17:24:02 作者:
直接關(guān)閉瀏覽器(或者強(qiáng)制關(guān)閉瀏覽器進(jìn)程、死機(jī)等),服務(wù)器無法處理用戶退出網(wǎng)站的請(qǐng)求,此舉將會(huì)導(dǎo)致session失效,下面整理了一些解決方法,感興趣的朋友可以參考下哈
如果用戶不點(diǎn)擊網(wǎng)站的“退出”鏈接,而直接關(guān)閉瀏覽器(或者強(qiáng)制關(guān)閉瀏覽器進(jìn)程、死機(jī)等),服務(wù)器無法處理用戶退出網(wǎng)站的請(qǐng)求,解決方式如下:
方式1:在每個(gè)頁(yè)面中加入隱藏的IFrame,以異步刷新的方式定期刷新iframe頁(yè)面,如每隔10S刷新一次,當(dāng)服務(wù)器在一定的時(shí)間內(nèi)未收到用戶的刷新請(qǐng)求,則認(rèn)為用戶已經(jīng)退出
優(yōu)點(diǎn):能在短時(shí)間內(nèi)判斷出用戶是否已經(jīng)退出 缺點(diǎn):增加用戶請(qǐng)求次數(shù),所消耗的服務(wù)器資源較大
方式2:使用cookie保存用戶登錄信息,不要設(shè)置cookie的過期時(shí)間,當(dāng)關(guān)閉瀏覽器時(shí),cookie會(huì)自動(dòng)過期
優(yōu)點(diǎn):處理方便 缺點(diǎn):用戶瀏覽器不一定支持cookie,也就無法實(shí)現(xiàn)該方式
方式3:在頁(yè)面中添加onunload事件,當(dāng)關(guān)閉瀏覽器時(shí),自動(dòng)跳轉(zhuǎn)到“退出”頁(yè)面(loginout.action)
優(yōu)點(diǎn):退出時(shí),能及時(shí)進(jìn)行處理 缺點(diǎn):當(dāng)用戶打開多個(gè)頁(yè)面時(shí),關(guān)閉任何一個(gè)頁(yè)面都有可能導(dǎo)致用戶的退出
方式4:記錄用戶的每次操作時(shí)間(包括頁(yè)面刷新、提交表單等),在數(shù)據(jù)庫(kù)中用作業(yè)每隔一段時(shí)間檢查上次的操作時(shí)間,當(dāng)操作時(shí)間大于一定的數(shù)值時(shí),就認(rèn)為該用戶已經(jīng)退出
優(yōu)點(diǎn):無論哪種非正常退出,都能夠進(jìn)行處理 缺點(diǎn):進(jìn)行檢查的時(shí)間間隔不容易確定,如果用戶在線,當(dāng)長(zhǎng)時(shí)間未操作,也會(huì)認(rèn)為用戶已經(jīng)退出
方式5:等待session失效
優(yōu)點(diǎn):你可以不用做任何工作 缺點(diǎn):用戶可以在你等待的這段時(shí)間內(nèi)重新登錄。
方式1:在每個(gè)頁(yè)面中加入隱藏的IFrame,以異步刷新的方式定期刷新iframe頁(yè)面,如每隔10S刷新一次,當(dāng)服務(wù)器在一定的時(shí)間內(nèi)未收到用戶的刷新請(qǐng)求,則認(rèn)為用戶已經(jīng)退出
優(yōu)點(diǎn):能在短時(shí)間內(nèi)判斷出用戶是否已經(jīng)退出 缺點(diǎn):增加用戶請(qǐng)求次數(shù),所消耗的服務(wù)器資源較大
方式2:使用cookie保存用戶登錄信息,不要設(shè)置cookie的過期時(shí)間,當(dāng)關(guān)閉瀏覽器時(shí),cookie會(huì)自動(dòng)過期
優(yōu)點(diǎn):處理方便 缺點(diǎn):用戶瀏覽器不一定支持cookie,也就無法實(shí)現(xiàn)該方式
方式3:在頁(yè)面中添加onunload事件,當(dāng)關(guān)閉瀏覽器時(shí),自動(dòng)跳轉(zhuǎn)到“退出”頁(yè)面(loginout.action)
優(yōu)點(diǎn):退出時(shí),能及時(shí)進(jìn)行處理 缺點(diǎn):當(dāng)用戶打開多個(gè)頁(yè)面時(shí),關(guān)閉任何一個(gè)頁(yè)面都有可能導(dǎo)致用戶的退出
方式4:記錄用戶的每次操作時(shí)間(包括頁(yè)面刷新、提交表單等),在數(shù)據(jù)庫(kù)中用作業(yè)每隔一段時(shí)間檢查上次的操作時(shí)間,當(dāng)操作時(shí)間大于一定的數(shù)值時(shí),就認(rèn)為該用戶已經(jīng)退出
優(yōu)點(diǎn):無論哪種非正常退出,都能夠進(jìn)行處理 缺點(diǎn):進(jìn)行檢查的時(shí)間間隔不容易確定,如果用戶在線,當(dāng)長(zhǎng)時(shí)間未操作,也會(huì)認(rèn)為用戶已經(jīng)退出
方式5:等待session失效
優(yōu)點(diǎn):你可以不用做任何工作 缺點(diǎn):用戶可以在你等待的這段時(shí)間內(nèi)重新登錄。
您可能感興趣的文章:
- 異步 HttpContext.Current實(shí)現(xiàn)取值的方法(解決異步Application,Session,Cache...等失效的問題)
- iframe跨域與session失效問題的解決辦法
- Laravel 5框架學(xué)習(xí)之Eloquent (laravel 的ORM)
- Laravel 5框架學(xué)習(xí)之表單
- Laravel 5框架學(xué)習(xí)之日期,Mutator 和 Scope
- Laravel 5框架學(xué)習(xí)之表單驗(yàn)證
- Laravel 5 框架入門(一)
- 關(guān)于擴(kuò)展 Laravel 默認(rèn) Session 中間件導(dǎo)致的 Session 寫入失效問題分析
- Session對(duì)象失效的客戶端解決方法
相關(guān)文章
windows開發(fā)記事本程序紀(jì)實(shí)(一)界面篇
這將是一個(gè)系列博文,后面會(huì)繼續(xù)補(bǔ)充邏輯功能的開發(fā)的步驟。本節(jié)主要實(shí)現(xiàn)記事本的主界面設(shè)計(jì),包括主界面窗口的構(gòu)建、菜單的加入。雖然都是一些基本的操作,但是還是想將這些基本步驟完整地記錄下來,以便后續(xù)驗(yàn)證。2014-08-08
12種最常用的網(wǎng)頁(yè)編程語(yǔ)言簡(jiǎn)介(值得收藏)
隨著網(wǎng)站的越來越普及,與Web相關(guān)的開發(fā)技術(shù)持續(xù)熱門,從開始簡(jiǎn)單的html到復(fù)雜的web開發(fā)語(yǔ)言asp、asp.net、php、jsp等等,在此,我就借助SEO馬龍博客的平臺(tái)跟大家簡(jiǎn)單的介紹一下常見的12種網(wǎng)頁(yè)編程語(yǔ)言2017-01-01
關(guān)于VSCode 裝好ESLint 插件 import 報(bào)黃線的問題
這篇文章主要介紹了VSCode 裝好ESLint 插件 import 報(bào)黃線的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
快速解決eclipse中注釋的代碼依然會(huì)執(zhí)行的問題
下面小編就為大家?guī)硪黄焖俳鉀Qeclipse中注釋的代碼依然會(huì)執(zhí)行的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
風(fēng)中葉老師講述的學(xué)習(xí)方法(學(xué)習(xí)編程的朋友需要看)
風(fēng)中葉老師講述的學(xué)習(xí)方法(學(xué)習(xí)編程的朋友需要看),希望大家能按照說明的那樣,自己多動(dòng)手動(dòng)腦2008-10-10

