人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

對于Global.asa與session變量失效

對于Global.asa與session變量失效

更新時間:2021-01-25 文章作者:未知 信息來源:網絡 閱讀次數:

一: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分鐘,就提示他。
應該不難!


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 收藏| 乌苏市| 盐边县| 吉木乃县| 镇原县| 五峰| 阿拉善盟| 德清县| 惠安县| 永安市| 中宁县| 滦平县| 和田市| 磐石市| 鄯善县| 正阳县| 建昌县| 仪陇县| 德化县| 巩留县| 新民市| 安龙县| 鄂托克前旗| 保德县| 萍乡市| 观塘区| 土默特右旗| 始兴县| 东乌珠穆沁旗| 唐河县| 隆安县| 永胜县| 临漳县| 庐江县| 平果县| 石阡县| 武义县| 木兰县| 游戏| 桂林市| 巴楚县|