国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET事件小探討

2024-07-10 12:57:09
字體:
來源:轉載
供稿:網友
今天早上做了asp.net頁面計數器的實驗,用的是簡單的文本文件來存儲計數器的數值(
實際是以byte類型值進行的存儲),原理代碼可見我以前發的《簡單計數器實現程序》。

今天的任務是把原來winform中的文件讀寫放入到asp.net的behindcode中,這就會出現
些許問題。

問題一:文件路徑
在asp.net的behindcode中寫文件路徑就不能因為文件在這個應用程序的目錄下直接寫文
件名來調用了。
例:
以前使用winform編程的時候,如果文本文件count.txt跟程序的可執行文件在一個目錄
下可直接使用filestream fs=file.open("count.txt",filemode.open);來對文件進行讀
取。
而在asp.net中,web應用程序的路徑是"虛路徑",意思是沒有映射為系統當前應用程序
默認路徑(系統當前默認路徑應該為c:/windows/system32,原因是此路徑下面有web應用
程序可供調用的豐富的win32api)。那么虛擬路徑的根是存儲在什么地方呢?應該是在i
is的配置文件中,在c#中這個路徑就是通過server.mappath()函數來映射的。
例:
如果count.txt文件在此web應用程序的目錄下,可以通過server.mappath("../count.tx
t");來映射到這個文件。注:直接寫文件名會找不到此文件,顯示的是文件無法讀取的
信息。

問題二:
web應用程序事件問題
其實asp.net的通訊及訪問模型中有三個層次
第一個層次就是application,是web應用程序層
此層次的變量周期為整個application,不過在application_start和application_end兩
個事件中運行的代碼,只有在應用程序開始或結束的時候才能進行(服務器啟動/關閉或
者強制iis把此應用程序啟動/關閉的時候),因此在這兩個事件中寫計數器代碼是無用
的。
第二個層次是session,是web應用程序的一個通信層
一次與用戶的通信(從以一個ip訪問應用程序開始,到這個ip與應用程序斷開或超時斷
開)對計數器來說是最有價值的體現,也是一個頁面計數器的功能。
不過問題也隨之出現了:
session的session_start和session_end事件是在一次通訊的開始和結束才被激發的。這
樣如果在session_start實件中寫代碼的話,只有一次通訊開始時訪問的頁面上才有計數
器的顯示,而在刷新后頁面顯示計數器的部分就不會再顯示了,怎么辦?不用著急請繼
續往下看。
第三個層次是page層,是每個頁面即web document的控制對象層。
我們知道了一個web頁面有一個page層,我們就會了解,一個頁面調出的時候將會調用pa
在此事件中添加計數器計數的代碼,計數器就會因為頁面刷新一次而增加一,這是我們
不愿意看到的。
怎么辦?
很簡單,在session_start中寫計數器計數的代碼,在page_load中寫計數器顯示的代碼
,這樣就可以實現我們需要的功能了。

希望通過這篇文章,能夠幫助初學者理解這幾個web應用程序層次及對應的事件,有時可
能有對問題的錯誤見解,希望能有高手指教。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五原县| 临漳县| 清镇市| 黔西| 永济市| 延津县| 宁远县| 深水埗区| 屯门区| 唐海县| 资中县| 卓尼县| 乾安县| 尼玛县| 武强县| 客服| 新津县| 广德县| 武邑县| 泰安市| 读书| 观塘区| 彭泽县| 天峨县| 满城县| 许昌市| 景洪市| 友谊县| 大冶市| 尖扎县| 图木舒克市| 汝州市| 邵东县| 巫溪县| 江永县| 深水埗区| 古交市| 林州市| 嘉鱼县| 永泰县| 铜山县|