麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

關于Global.asa文件的深入研究與session變量失效提示的具體方法

2019-11-18 22:14:09
字體:
來源:轉載
供稿:網友
一:Global.asa文件的釋疑!從字面上講!Global就是全局的,全球的意思!
    我們都知道!瀏覽器中的變量存活期十分短暫!只有幾十秒!也就是一個頁面的下載時間。那么我們怎樣從生命開始
到結束都追蹤session級變量哪?靠asp文件已經力不從心了!微軟告訴我們:靠我們的Global.asa吧!
    global.asa是一個可選的文件!他必須放在你的www根目錄下,或是虛擬目錄的根目錄下。這樣,可以確保你的一個應
用程序共享一個global.asa文件。正是他可以在你的應用程序開始始終追蹤應用程序對象與會話對象。

二:Global.asa文件的組成與用法釋疑!
    為了讓服務器紀錄單獨用戶的線程。Global.asa文件必須指定
<SCRipT LANGUAGE=ScriptLanguage RUNAT=Server>
.......
</SCRIPT>
而runat=server這行文字告訴我們他確實是在服務器上執行的。(所以你不可能用msgbox()的函數,也不可能用
document.write的方法提示用戶或寫一些什么!后有詳述)
完整的用法是:
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>

Sub application_OnStart
. . .
End Sub

Sub Application_Onend
. . .
End Sub

Sub session_OnStart
. . .
End Sub

Sub session_Onend
. . .
End Sub

</SCRIPT>

而整個過程是這樣的。當你訪問一個站點文件。如果是html的,則程序不會運行!因為里面不可能有application,session
對象的發生。如果是asp文件,則服務器首先檢測www的根目錄,或虛擬目錄的根目錄有沒有global.asa文件。如有,則運
行程序內的相應代碼!但是請注意,如果你的asp文件中并沒有建立實例化的application,session。服務器同樣不追蹤
你!
  另外:值得注意的是:在Onstart事件發生時,服務器的任何對象都可以使用!
但是當onend事件發生時。則應注意session_Onend中只允許server,application,session對象運行。但實際上限制更多。
你不能在其中運行server.mapth方法。而且不可以再對session進行附值。

三:如何在session對象失效時提醒用戶---失效后
    終于開始討論有用的話題了!這也是許多網友關心的問題!
    首先,我們討論失效后如何提醒。
    這也要提醒嗎?直接檢測session("**")得值就可以嗎?(**為你要檢測其session("**")是否失效的值!)這樣并不
好,因為第一次上來的人也可能其session("**")為空!
    那么,我們來看看,該功能具體用在什么地方。最明顯的例子為購物網頁,如果你用session來存儲購物車。你必須告
訴他他的購物車是否失效(如果再購物期間用戶出去了,或是肚子不舒服了臨時干了什么!session的值可能失效!)
    有的想法是一失效就給出提示。可惜很難實現!因為session_onend事件在服務器端執行!不可能及時的傳過來告訴
你,除非用server push的方法。其實也不好!如果你不在,或是沒有了連接,他同樣無法完成。
    所以只有用戶再次登陸時告訴你你的上一次購物未完成,只有重新登陸!
    這下就好實現了。針對與單獨的客戶,如果他開始購物了那么他將觸發session_onstart事件的發生。這樣你在
global.asa中對其客戶端做標記!代碼如下:
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
.....
Sub session_OnStart
    response.cookies("flag")=1
End Sub
......
</script>
然后在你的檢測代碼中寫下檢測代碼
flag=request.cookies("flag")

if flag=1 and session(**)="" then
   response.write "你的上一次登陸已過期了"
   response.end
elseif session(**)="" then
   response.write "你還沒有登陸"
end if        
你可以將其寫成一個文件,然后用<--#include....-->包含進你需要檢測的文件中,這樣就可以完成對其檢測了!

那為什么不能在session_onend 事件中寫代碼,這樣不是更容易嗎?

可惜,我想了許多辦法也沒有想出。因為在session_onend事件中,你不可能用response.write,response.redirect。 對
象做些什么,他們不可訪問。只能用的幾個對象application,session,server還限制多多。你也不可能在此期間再給
session(**)附值,這樣他可能再也不會失效了,呵呵!

四:失效前給出提示。
    防患于未然是個很好的想法,但實現起來就不是真的很有用。我們上面討論過。這必須是用戶連接著。而且好像還沒
有session快失效的事件,呵呵!
    那么真的沒有沒有辦法了嗎?其實有,我們只要將上面的代碼多加幾行就可以了。
    首先。還是用global.asa文件中的session_onstart事件。
這里你要加上。
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
.....
Sub session_OnStart
    session.timeout=30       '這里指sission的失效時間,以分鐘為單位!
    response.cookies("flag")=1
    response.cookies("time")=now() '這里紀錄他的初次建立session的時間。
End Sub

......
</script>

看到這里,我們應該可以不難寫出檢測代碼。
將上面的代碼重新寫過,加一個時間運算如果它的失效還有5分鐘,就提示他。
應該不難!




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻豆一区二区99久久久久 | 媚药按摩痉挛w中文字幕 | 日韩黄色片在线观看 | 久久国产精品免费视频 | 在线影院av | 国产免费视频一区二区裸体 | 国产精品一区2区3区 | 偷偷操偷偷操 | 日本一区二区视频在线观看 | 久久久久久久国产视频 | 最新中文字幕日本 | 欧美精品一区二区三区在线 | 亚洲成人欧美在线 | xxxx18韩国护士hd老师 | 国产美女视频一区二区三区 | 久久久久久三区 | 香蕉视频99| avlululu| 久草视频在线看 | 久久影城 | 日本高清视频网站www | 国产成人在线视频播放 | 欧美精品亚洲人成在线观看 | 国产毛片网站 | 国产精选久久久 | 91精品免费在线 | 精品国产91久久久久久久 | 国产一级免费在线视频 | 沉沦的校花奴性郑依婷c到失禁 | 国产精品视频免费在线观看 | 国产午夜精品一区二区三区免费 | 91精品观看91久久久久久国产 | 男女一边摸一边做羞羞视频免费 | 久久久久久久爱 | 欧美一级黄色网 | 斗破苍穹在线观看免费完整观看 | 成人在线观看免费观看 | 黄色网页在线观看 | 日韩黄色免费在线观看 | 黄色特级视频 | 国产999视频在线观看 |