這節我們講狀態管理Application,和Session以及Cookie,
Application利用他建立的變數,將是在系統內部任何地方都可以訪問的.通常網站的訪問統計會用得比較多.要用他的話,我們得先在系統(不是WIN系統哈)中建立一個global.asa檔案,事實上Session也是使用的這個檔案.
Application是一個共享的物件,當程式開始運行他就建立了,一直持續到程式關閉,他的變數是共享的,所有操作這個程式的人都可以使用,那麼這就有麻煩了,如果兩個人同時給了他修改變數的命令,他該聽誰的呢?所以,這裡我們就使用了悲觀的鎖定,每一次變數被操作的時候,都使用Lock 來鎖定他,當操作完再解鎖UnLock .
下面我們利用他建立一個訪問統計
那Session就不同了,這個是在每個人進到程序的時候就建立Session物件,也就是說,Application只有一個,而Session是有多少人用就有多少個,Session是不共享的,當這個人退出程式的時候該物件在系統預設的20分鐘後被銷毀,當然.我們可以認為的去改變這個時間.如果這個人在規定的時間內再訪問程序的話,他直接使用先前建立的那個Session對象,可如果特定時間以後再來,那隻好再重新建立.
這裡我們得注意下,asp,php等語言中Session是依賴與Cookie的,如果用戶不接受Cookie ,那麼Session也不能用,但是.net擯棄了這種做法,我們只需要在web.config文件裡面設定Cookieless屬性為True,他就可以不倚賴誰,自立門戶了.
下面我們說Cookie,他其實就是在硬碟或者瀏覽器內存中建立的一個對象,我們說Session對像是保存在服務器端的,那麼Cookie則是保存在客戶端的,他們都是為了保存客戶的一些資訊.Session只能短時間的保存客戶的狀態,因為畢竟我們得考慮伺服器的負載,而Cookie則可以長時間的保存,例如我們常常看見的記住我,或者論壇常常有說保存一天,一月,一年什麼的.
我們可以回到上上課的例題看一下