top
Loading...
深入研究Application和Session對象(包括global.asa)1
用ASP編寫虛擬社區、網上購物等程序時,Application和Session對象具有舉足輕重的作用,能夠靈活合理地運用這兩個對象是提高程序質量的關鍵。下面讓筆者根據自己在這方面的經驗,向大家深入介紹一下ASP的這兩個內建對象。

一、Application對象的成員概述

Application對象成員包括Application對象的集合、方法和事件。

⒈Application對象的集合

Contents集合:沒有使用<OBJECT>元素定義的存儲于Applicaiton對象中的所有變量的集合

StaticObjects:使用<OBJECT>元素定義的存儲于Application對象中的所有變量 的集合

例:在default.asp中有如下賦值

application("a")="a"

application("b")=128

application("c")=false

則有contents集合

application.contents(1)="a" '也可寫為application.contents("a")="a"

application.contents(2)=128 '也可寫為application.contents("b")=128

application.contents(3)=false '也可寫為application.contents("c")=false

在此筆者推薦你在調用時使用類如application.contents("a")的方法,因為這樣更為直觀,如果用序號來表示的話則要考慮賦值的先后順序。

⒉Application對象的方法

Contents.Remove("變量名"):從Application.Contents集合中刪除指定的變量

Contents.RemoveAll() :把Application.Contents集合中的所有變量刪除

Lock() :鎖定Application對象,使得只有當前的ASP頁對內容能進行訪問

Unlock() :解除對Application對象的鎖定

例:在default.asp中:

application("a")="a"

application("b")=128

application("c")=false

response.write application.contents(1)&"<br>"

response.write application.contents(2)&"<br>"

response.write application.contents(3)&"<br>"

response.write "After Remove b:"

application.contents.remove("b")

response.write application.contents(1)&"<br>"

response.write application.contents(2)&"<br>"

執行結果:

a

128

False

After Remove b:

a

False

如果要刪除集合中所有變量用application.contents.removeall即可,至于Lock和Unlock方法在實際中經常用到,讀者也比較熟悉,在此就不在累贅。

⒊Application對象事件

OnStart:第一個訪問服務器的用戶第一次訪問某一頁面時發生

OnEnd :當最后一個用戶的會話已經結束并且該會話的OnEnd事件所有代碼已經執行完畢后發生,或最后一個用戶訪問服務器一段時間(一般為20分鐘)后仍然沒有人訪問該服務器產生。

想要定義application對象的OnStart和OnEnd事件里做什么需要將代碼寫在Global.asa這個文件里(下文有舉例),并且將該文件放在站點的根目錄下(一般是Inetpubwwwroot)

北斗有巢氏 有巢氏北斗