91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET的四種狀態分別是哪些

發布時間:2021-10-28 09:26:23 來源:億速云 閱讀:122 作者:柒染 欄目:編程語言

ASP.NET的四種狀態分別是哪些,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

這些狀態的原理對于做.NET開發非常重要。現在詳細解說一下。

視圖狀態:視圖狀態就在大家身邊不知道大家是否注意。ASP.NET是基于服務其處理事件的。當服務器處理完事件時,再返回本窗體時,如果沒有視圖狀態,原來的數據將不會在有。這樣說也許會暈。舉個列子,比如有一個網站需要你注冊成為會員。當你填完信息,(一般來說頁面會轉向別的地方)這里為了說明問題,我們讓他返回原來的頁面繼續操作,如果沒有視圖狀態,則你以前填的數據都沒有了。如果有視圖狀態,則原來的數據還在。試圖狀態在一些時候很有用。比如說分級驗證時。

那么.NET是用什么方法保持試圖狀態呢?這里微軟采用了一種特殊的方法。在瀏覽器打開網頁的源代碼,你會發現一段你在編輯網頁時,沒有添加的一個HTML控件。

形式是這樣的:

<input type="hidden" name="_VIEWSTATE" id="_VIEWSTATE" value="一些加密過的值"/>

這是.NET自動給你添加的。它也是視圖狀態能夠實現的功臣。因為這個空間是隱藏的,所以不會破壞頁面的布局。空件中的value中的值就是就是各個空件以及控件中的數據(狀態)。這些數據是經過哈希函數加密過的。這是為了安全考慮。當網頁提交時,瀏覽器首先將當前網頁中的各種狀態(包括控件以及控件中的數據)保存到這個HTML字段中。當網頁再次返回瀏覽器時,在自動把這些狀態返回給網頁,這樣網頁也就恢復了狀態。

再來講講視圖狀態需要注意的問題。

視圖狀態只能在本網頁與服務器之間保持,不能在不同網頁之間連接時保持。默認情況下,幾乎所有的ASP.NET控件都有保持視圖狀態的功能。

視圖狀態有很多優點,但同樣(世上每件事都具有兩面性,一個好的技術也不列外)有些缺點。首先是安全,雖然數據是經過加密,但對于黑客中的骨灰級人物,還是很不安全的。再次,你可以想如果你的頁面包括幾百條記錄,頁面很復雜,這是必會影響網頁的加載速度。

應用程序狀態(Application):Application對象是應用程序的全局性對象。用于存放應用程序的全局共享資源。他的本質是HttpApplicationState類的一個實例。當用戶***次反問某虛目錄中的資源時,就被創建。也就是說網站***次在互聯網上發布,這時有一個用戶剛好訪問你的虛擬目錄資源,那么Application對象就已經建立。在資源與應用程序之間建立了一個緩沖區。

應用程序狀態只有在網站運行時存在。當應用程序推出或服務器關閉時(更慘一點服務器崩潰了),應用程序狀態中保存的數據機會丟失和損壞。所以對于需要***保留的資源還是在數據庫中持久化保存的好。

介紹一些Application對象的一些操作方法。

Application對象當然是采用最經典的“鍵-值”對的字典方法來定義。其中鍵為字符串代表Application對象的名稱。值可以是任何類型的數據。(例如HTML,CSS,SQL都可以)。舉個例子:

Application["source"]="special source";string message =Application["source"].ToString();在Application中添加刪除保存的對象。Application.Add("source",''special source");Application.remove("source");來一個狠一點的操作,把Application中的對象全部請出去。Application.Clear();或Appication.RemoveAll();信息共享自然會引來一個問題,資源的同步競爭。這類問題解決當然要靠鎖了。Applicatin.Lock()//加鎖鎖定資源,不讓其他進程訪問。functions(Application["source"]);//一些操作Application對象的操作。Application.UnLock();//解除鎖定。

會話狀態(Session):Session對象用來保存單個用戶的狀態。在網站中,每個新訪問的用戶都將產生自己的會話(Session)對象。這個Session對象是在服務器端進行管理,只能為它所綁定的用戶服務。如果另一位用戶也訪問網站,他也經擁有自己的Sesiion對象。兩個用戶的Session對象即使同名,也不能共享同一個Session對象。各是各的。

實際上Session對象是HttpSessionState類的實例。有很多屬性和方法,大家不妨去看看。這里不闡述了。

就一些例子吧。

Session["source"]="special source";string message =Session["source"].ToString();

應用程序狀態在網站中總是可用的,這.NET Framework的內部機制,我們不去管。我們來看看Session對象。由于在Machine.config配置文件中的Session設置是啟動的,因此不需要額外的步驟就能使用它。盡管如此我們還是要知道一些原理和本質。Machine.config和應用程序的Web.config中的設置決定了是啟動還是關閉Session對象。當然如果想要延遲到需要時,在啟用也可以。我們可以在頁面一級設置。

//這條語句的作用是在這個頁面中不能使用會話狀態(Session)。

Session對象有一個Timeout屬性可以設置Session對象的生命周期。它以分鐘為單位,默認是20分鐘。如果再有效時間內沒有連接服務器,那么Session的所有設置都將失效。如果需要終止Session對象,可以用它的Abandon()方法。

差點忘了,Session有一點很重要,補充一下。

session中的關鍵字是不區分大小寫的。因此不要用大小寫來區分Session變量。也就是說Session["source"]與Session["SOURCE"]是一樣的。如果刪掉其中一個,會有意想不到的結果。

Cookie狀態: Coolkie 狀態一是用來保存一個用戶資源的狀態。和Session不同的是它存儲在瀏覽器端。在Cookie中只能含有較少的信息,通常不超過4096個字節(有些較新的瀏覽器可以達到8192個i字節).在ASP.NET中,Session對象和Cookie對象現結合來識別用戶。每當用戶開始連接站點時,系統將自動在內存塊中創建一個和用戶有關的Session對象,同時創建一個Cookie對象來保存用戶ID并把它保存在瀏覽器端,與當前的用戶***的聯系起來。這樣當用戶下一次在訪問時,用戶被要求提交用戶的TD也就是CooKie,Cookie和Session相對照以正確的還原原來的會話狀態。這就是無狀態協議Http條件下保持用戶狀態的方法。

向瀏覽器寫入Cookie的方法是這樣的。舉個例子:

HttpCookie cookie=new HttpCookie("userNameId");//創建一個Cookie對象,并且賦值。cookie.Value="userNameId"//如果已經存在一Cookie,也可以這樣給它賦值。cookie.Expires=DateTime.Now+TimeSpan;//設定cookie的生命周期,這里的TimeSpan是TimeSpan類的一個實例。cookie的默認時間是20分鐘。Response.Cookies.Add(cookie);//向瀏覽器中寫入Cookie.HttpCookie cookie1=Request.Cookies["cookie"];//讀取Cookie.

關于ASP.NET的四種狀態分別是哪些問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘洛县| 海淀区| 牟定县| 宁明县| 墨竹工卡县| 临高县| 托克逊县| 通州区| 临夏市| 大埔县| 凤城市| 华坪县| 神池县| 西昌市| 屏东县| 建瓯市| 越西县| 贡嘎县| 丰宁| 敖汉旗| 和平县| 汶川县| 永吉县| 磴口县| 读书| 东乡| 普定县| 南和县| 平利县| 社旗县| 乌拉特后旗| 宁河县| 宜宾市| 永和县| 闽侯县| 南华县| 栖霞市| 新闻| 徐州市| 沾益县| 海兴县|