日韩高清在线免费不卡性生活毛片,亚洲av综合第一页,亚洲美女被操,一级无遮挡理论片

綠色資源網(wǎng):您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|論壇轉(zhuǎn)帖|廠商大全

綠色資源網(wǎng)

技術(shù)教程
您的位置:首頁(yè)網(wǎng)絡(luò)編程Asp編程 → ASP清除Application緩存的問(wèn)題

ASP清除Application緩存的問(wèn)題

我要評(píng)論 2012/08/21 22:20:21 來(lái)源:綠色資源網(wǎng) 編輯:downcc.com [ ] 評(píng)論:0 點(diǎn)擊:433次

Asp中的 Application 是一個(gè)公用的對(duì)像

我們可以用一個(gè)語(yǔ)句來(lái)清理服務(wù)器上的所有Application 對(duì)像

application.contents.removeall  '清空所有緩存

會(huì)員登陸后修改application變量,比如我們用一個(gè)application("login")=true表示登陸了.那么登陸時(shí)就應(yīng)該先進(jìn)行一次的application("login")=ture
直到其退出后才會(huì)將其值修改為false.
當(dāng)然登陸前先檢查一下application("login")的值,若不存在或是false就可以讓其進(jìn)行登陸,否則做出限制跟轉(zhuǎn)至錯(cuò)誤提示頁(yè)面.

而session只是一個(gè)單用戶的級(jí)別,不合適用的.而session變量是其他用戶根本取不到的.

剩下要考慮的是非正常退出等,如果user1直接關(guān)閉的瀏覽器,那么沒(méi)有退出時(shí)進(jìn)行修改application("login")的值,這時(shí)會(huì)發(fā)生所有用戶都登陸不上的問(wèn)題.這里要用到session_OnEnd事件進(jìn)行一次的清除變量,這里面顯然要加上application("login")=false或null這樣的修改.但是還要把session.tiomeout時(shí)間設(shè)短一點(diǎn),要不如果某用戶關(guān)閉后要等很長(zhǎng)的時(shí)間后才可能登陸的.但是過(guò)短又不行,如果太短的話,你的這個(gè)用戶連一個(gè)填寫表單完成的機(jī)會(huì)都沒(méi)有,那么user2會(huì)搶先登陸進(jìn)去的.顯然,這里最好的辦法就是增加一個(gè)提醒機(jī)制進(jìn)行計(jì)時(shí),比如我設(shè)的是十分鐘,在登陸者的頁(yè)面上會(huì)出現(xiàn)計(jì)時(shí)的,倒計(jì)至9分鐘左右讓其點(diǎn)一個(gè)按鈕與服務(wù)器交互一下,這樣計(jì)時(shí)器重新從十分鐘開(kāi)始計(jì)時(shí).或者寫一個(gè)小的自動(dòng)請(qǐng)求服務(wù)的ajax,讓其每隔1分鐘向服務(wù)器發(fā)一次請(qǐng)求,這樣時(shí)間你可以設(shè)置為略大于1分鐘而保證在線者的不掉線,別人不能搶入,而其關(guān)閉后,顯然1分鐘后允許別人登陸.

過(guò)期頁(yè)面的處理,如果一個(gè)用戶在session時(shí)間內(nèi)無(wú)任何服務(wù)器動(dòng)作的話,可由別的登陸用戶進(jìn)行搶入,這時(shí),也就是十分鐘后,該頁(yè)面進(jìn)行了刷新操作,此時(shí)必須把這個(gè)用戶進(jìn)行一個(gè)過(guò)期處理.不能讓其再進(jìn)入,如果不加過(guò)期處理,此時(shí)會(huì)發(fā)生兩個(gè)人同時(shí)在線的情況.

搶登陸,假定兩地都有用戶在同時(shí)搶登陸時(shí),如果進(jìn)行處理.user1登陸時(shí)發(fā)現(xiàn)application("login")的值是可以登陸的.于是就正在填寫,而user2此時(shí)也在讀取application的值,發(fā)現(xiàn)可以登陸,那么兩者會(huì)同時(shí)登陸上的.解決的辦法是:
1,頁(yè)面進(jìn)行取值的方法,也就是說(shuō)當(dāng)有人請(qǐng)求login頁(yè)面時(shí)就先進(jìn)行application值的更改.其他用戶再請(qǐng)求時(shí)已經(jīng)不能請(qǐng)求到頁(yè)面了.或請(qǐng)求到了不允話登陸的頁(yè)面信息.但如果是這樣的話,不管登陸沒(méi)有登陸都是要清除的,所以session_OnEnd事件中不管是否登陸都要進(jìn)行application的靖除的.
2.鎖定變量的方法,application變量是可以鎖定的,進(jìn)入頁(yè)面時(shí)先將application進(jìn)行鎖定,而其他用戶是取不到值的.取不到值時(shí)就好辦了,提示有用戶正在嘗試登陸.當(dāng)然無(wú)論那個(gè)嘗試登陸的是否登陸都要對(duì)其進(jìn)行解鎖的.也就是說(shuō)在關(guān)閉頁(yè)面中,最好是這樣,寫一個(gè)ajax進(jìn)行application進(jìn)行解除鎖定.當(dāng)然登陸完成時(shí)也要進(jìn)行解鎖定.最后是如果意外時(shí),session_OnEnd也要進(jìn)行嘗試解鎖定,如果變量正在鎖定,則解鎖定就是嘗試解鎖定的意思.

當(dāng)然,數(shù)據(jù)庫(kù)法也可以用的,數(shù)據(jù)庫(kù)中有一個(gè)字段進(jìn)行標(biāo)志,但這樣的解決方法只是將使用application變量,換成了使用字段而已.其他都是一樣的.但速度上與安全上依賴于application變量比較好的.

一樓,session變量是一個(gè)用戶級(jí)變量,請(qǐng)問(wèn)另一個(gè)用戶在登陸時(shí)如果得到其他用戶的變量?這樣不亂套了嗎?別忘記一句話:每一個(gè)用戶在請(qǐng)求頁(yè)面時(shí)都自動(dòng)生成一個(gè)session的.而application則是全局變量,網(wǎng)頁(yè)的即時(shí)聊天就是來(lái)源于這個(gè)變量的.但變量過(guò)大時(shí)會(huì)占用服務(wù)器較大的內(nèi)存的!
二樓,就是一個(gè)統(tǒng)計(jì)在線用戶的程序,請(qǐng)問(wèn),考慮到兩個(gè)用戶在同時(shí)嘗試登陸的情況嗎?這種方法可以是登陸上,但必須加代碼再測(cè)試一下是否有同時(shí)在線用戶,如果有,必須讓其當(dāng)即退出登陸才行的,這樣才能做到單用戶登陸.

不過(guò)一個(gè)用戶登陸的網(wǎng)站你干什么用呢?如果是單單限制登陸用戶不能進(jìn)入login界面的話,可以使用session值,在登陸界面中進(jìn)行一次的簡(jiǎn)單判斷嘛.那樣的話又非常簡(jiǎn)單,比如登陸用戶登陸后會(huì)有session("username"),在登陸頁(yè)面上去查這個(gè)查是否為空或是否存在,若為空或存在則正常登陸,否則轉(zhuǎn)向錯(cuò)誤頁(yè)面不就行了?

關(guān)鍵詞:ASP

閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!

  • 0 歡迎喜歡
  • 11 白癡
  • 11 拜托
  • 2 哇
  • 2 加油
  • 15 鄙視