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

綠色資源網(wǎng)

技術教程
您的位(wèi)置:首頁網絡編程Asp編程 → ASP清除Application緩存的(de)問題

ASP清除Application緩存的問題

我要評論 2012/08/21 22:20:21 來源:綠色資源網 編輯:ynaad.com [ ] 評論:0 點擊:433次

Asp中的 Application 是一(yī)個公用(yòng)的對像

我們可(kě)以用一(yī)個語句來清理服務器上的所有Application 對像

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

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

而(ér)session隻是一個單用(yòng)戶(hù)的級別,不合適用的.而(ér)session變量是其他用戶(hù)根本取不到的.

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

過期頁麵的處理,如果一個用戶在(zài)session時間內無任何服務器動作的話,可由別的登陸用戶進行搶入,這時,也就是(shì)十分鍾後,該頁麵進行了刷新操作,此時必須把這個用戶進行一個過期處理.不能讓其再(zài)進入,如果不加過(guò)期處理,此(cǐ)時會發生兩個人(rén)同(tóng)時在線的情(qíng)況(kuàng).

搶登陸,假定兩(liǎng)地都有用戶在同時搶登(dēng)陸時,如果進行處(chù)理.user1登陸時發現application("login")的(de)值是可以(yǐ)登陸的.於是就正在填(tián)寫,而user2此時也在讀取application的值,發現可以登陸,那麽兩者會同時登陸上(shàng)的.解決的辦法是:
1,頁麵進(jìn)行取值的方法,也就是說當有人(rén)請求(qiú)login頁麵時就先進行application值的更改.其(qí)他用戶再請求時已經不能請求到頁(yè)麵了.或請求到了不允話登陸的頁麵信息.但如果是這樣的話,不管登陸沒有登陸都是要清除的(de),所以(yǐ)session_OnEnd事件中不管是否登(dēng)陸都要進行application的靖除的.
2.鎖定(dìng)變量的方法(fǎ),application變量是可以鎖(suǒ)定的,進入(rù)頁麵時先將application進(jìn)行鎖定,而其他用戶是取不到(dào)值的.取不到值時就好辦了,提示有用戶(hù)正在嚐試登陸.當然無論那個嚐試登陸的是否登陸都要對其進行解鎖的.也就是說在關閉頁麵中,最好是這樣,寫一個ajax進行application進行解除鎖定.當然登陸完成時也要進行解鎖定.最後是如(rú)果意外時,session_OnEnd也要進行嚐試解鎖定,如果變量(liàng)正在鎖(suǒ)定(dìng),則解鎖定就是嚐試解鎖定的意思.

當然,數據(jù)庫法也(yě)可以用的,數據庫中(zhōng)有一個字段進行(háng)標誌,但這(zhè)樣的解決方法隻是將(jiāng)使用application變量(liàng),換成了使用字段而(ér)已.其他都是一樣(yàng)的.但速度上與(yǔ)安全上依賴於application變量比較好的.

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

不過一個用戶登陸的網站你(nǐ)幹什麽用呢(ne)?如果是單單限製登陸用戶(hù)不能進入login界麵的話,可(kě)以使用(yòng)session值,在登陸界麵(miàn)中進行一次(cì)的簡單判斷嘛(ma).那樣的話又非(fēi)常(cháng)簡單,比(bǐ)如登(dēng)陸用戶登陸後會有session("username"),在(zài)登陸頁麵上去查(chá)這個查是否為空或是否存在,若為空或存在則正常登陸,否則轉向錯誤頁麵不就行了?

關鍵詞:ASP

閱讀本文後您有什麽(me)感想? 已有 人給出評(píng)價!

  • 0 歡迎(yíng)喜歡
  • 11 白癡
  • 11 拜托
  • 2 哇
  • 2 加油
  • 15 鄙視
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡