五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 8.4 應(yīng)用程序期間信息存儲(chǔ)的Application對(duì)象

8.4 應(yīng)用程序期間信息存儲(chǔ)的Application對(duì)象

文章來源:365jz.com     點(diǎn)擊數(shù):513    更新時(shí)間:2009-09-12 17:12   參與評(píng)論

Application對(duì)象用于在整個(gè)應(yīng)用程序期間保存信息。

8.4.1 Application對(duì)象簡(jiǎn)介

Application對(duì)象與Session對(duì)象十分相似,甚至他們所具有的方法和集合都是基本相同的,但是Application對(duì)象沒有屬性。Application對(duì)象的原理是這樣的,在每次應(yīng)用程序啟動(dòng)(即IIS的啟動(dòng))時(shí),會(huì)在內(nèi)存中請(qǐng)求一部分空間來保存數(shù)據(jù),這個(gè)數(shù)據(jù)對(duì)于訪問站點(diǎn)的所有用戶來說是共享的,當(dāng)在IIS中停止站點(diǎn)或者服務(wù)器重啟時(shí),Application對(duì)象所存儲(chǔ)的信息將丟失,要特別注意這一點(diǎn)。Application對(duì)象一般用來存儲(chǔ)一些不經(jīng)常變動(dòng),或者少量的經(jīng)常變動(dòng)并且沒有必要存儲(chǔ)在數(shù)據(jù)庫(kù)中的內(nèi)容。

8.4.2 Application對(duì)象的方法和集合

與Session類似的,Application對(duì)象也有Contents集合,我們可以使用如下的代碼來設(shè)定集合變量的值:

Application.Contents("WebSite") = "http://ww.hanguofeng.com"

這段代碼在名為WebSite的Application變量中保存了字符串http://ww.hanguofeng.com。

同樣,Application對(duì)象也可以使用簡(jiǎn)寫,如上述代碼可以寫為

Application("WebSite") = "http://ww.hanguofeng.com"

在設(shè)定了這個(gè)變量的值后,當(dāng)前站點(diǎn)的任何用戶均可以通過代碼

Response.Write(Application("WebSite"))

來輸出我們保存在名為WebSite的Application集合變量值,即,輸出http://www.hanguofeng.com字樣。

Application對(duì)象也有Remove和RemoveAll兩個(gè)方法,其使用方法與Session對(duì)象的相應(yīng)方法類似,這里不再詳述了,下面我們來看Application對(duì)象的另外一對(duì)方法,即Lock方法和UnLock方法。

我們已經(jīng)多次提到過了,Application對(duì)象對(duì)于當(dāng)前訪問站點(diǎn)的所有用戶都是共享的,那么則可能出現(xiàn)兩個(gè)用戶同時(shí)修改Application的集合中某個(gè)元素的值,此時(shí)可能會(huì)引起未期料的后果。打比方來說,在某個(gè)頁(yè)面有如下代碼:

<%

Application("count") = Application("count") + 1

%>

這段代碼的目的是在每次訪問這個(gè)頁(yè)面時(shí)都將Application集合中名為count變量的值加一,那么假設(shè),在某一時(shí)刻,這個(gè)變量的值為5,就在同一時(shí)刻,兩個(gè)用戶同時(shí)進(jìn)入了此頁(yè)面,第一個(gè)用戶取出Application的值,而后加一,再保存回Application集合中,第二個(gè)用戶也進(jìn)行了此操作,那么最終名為count的Application變量的值為6,但是按照我們程序本來的目的,這個(gè)變量的值應(yīng)當(dāng)為7,這就是出現(xiàn)了未期料的后果。

Lock方法用于對(duì)Application的值進(jìn)行鎖定,當(dāng)調(diào)用了此方法時(shí),其他用戶就不能夠?qū)pplication集合進(jìn)行修改,直到調(diào)用了Unlock方法后,其他用戶才能夠進(jìn)行修改,因此我們可以對(duì)上面的代碼進(jìn)行修改,如下:

<%

Application.Lock()                                                   '鎖定

Application("count") = Application("count") + 1          '修改

Application.UnLock()                                               '解鎖

%>

8.4.3 小案例—Application制作的簡(jiǎn)單聊天室

在ASP剛剛問世的時(shí)候,有很多使用ASP制作的聊天室,他的原理就是利用Application集合是訪問站點(diǎn)所有用戶共享的特點(diǎn),將所有用戶所發(fā)表的聊天語(yǔ)句都存儲(chǔ)在Application中而制作的,當(dāng)然,現(xiàn)在由于這種方法需要占用比較大的服務(wù)器內(nèi)存資源,因此已經(jīng)很少使用了,我們不妨以這個(gè)例子來體會(huì)Application對(duì)象的特點(diǎn)。

程序的主要核心就是將Application中的內(nèi)容取出顯示,另外,在訪問者“說話”時(shí),將其所發(fā)送的內(nèi)容存入Application中即可,本案例代碼如下:

<%

If UCase(Trim(Request.ServerVariables("REQUEST_METHOD"))) = "POST" Then

       Dim sCurrectWord

       sCurrectWord = Trim(Request.Form("word"))

       Application.Lock

       Application("chatroom") = Application("chatroom") & "<br>" & Session.SessionID & "-&gt;" & sCurrectWord

       Application.UnLock

End If

Response.Write("以下是聊天室的內(nèi)容:")

Response.Write(Application("chatroom"))

Response.Write("<hr>")

Response.Write("<form method=""post"" action="""">")

Response.Write("請(qǐng)輸入要說的話:<input name=""word"" type=""text"" />")

Response.Write("<input type=""submit"" value=""提交"" />")

Response.Write("</form>")

%>

依照我的變成習(xí)慣,首先我對(duì)用戶的發(fā)表進(jìn)行了處理,如果當(dāng)前提交了表單,那么首先獲取用戶所說的話,而后先調(diào)用Application.Lock方法鎖定Application,而后將用戶說的話附加在Application后并更新,而后調(diào)用UnLock方法解鎖。

下面進(jìn)入顯示的部分,即調(diào)用Response.Write()方法來輸出Application("chatroom")的值。

這個(gè)頁(yè)面的顯示效果如圖8.7所示。

圖8.7

如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (513人查看0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)