2011-03-23 100 views
2

我是編程領域的新手,特別是在web基礎編程中。我想學習關於州管理技術的最佳實踐。我的意思是如何在asp.net中學習狀態管理的最佳實踐

當我們創建會話?

時使用會話如何檢查空會話? ,

何時使用cookies?

何時使用隱藏字段?

所有的區別是什麼?

在某個時間使用哪種技術?

應用程序如何因狀態管理不成功而崩潰? 當我們開發Web應用程序時,我們需要關注哪些事情需要關注狀態管理...... ???

有這麼多問題。也許你們都知道。請幫我解決我的困惑。

在此先感謝!

+1

請把你的問題分成不同的問題。根據不同的情況,答案會有所不同,所以很難在這裏給出合理的解釋。 – 2011-03-23 11:44:56

回答

2
+1

謝謝,這些鏈接必須對我有幫助... – Liladhar 2011-03-24 06:42:16

1

聽起來像你應該只需要做一些閱讀。

Pro ASP.NET - 本書有關於國家管理的一章,但我打賭本書的其餘部分對你也有幫助,因爲你是初學者。

此外,MSDN有關於州管理和何時使用什麼的一些很好的信息。

2

http://www.thedevheaven.com/2012/05/state-management.html

狀態管理是由你保持狀態和過程通過多個請求爲相同或不同頁面提供頁面信息。

國家管理的類型

有2種狀態管理:

  1. 客戶端 - 端狀態管理 這通過嵌入信息到網頁存儲在客戶端計算機上的信息,統一資源定位器(url)或cookie。可用於在客戶端存儲狀態信息的技術列舉如下:

a。視圖狀態 - Asp.Net使用視圖狀態來跟蹤控件中的值。您可以將自定義值添加到視圖狀態。它被Asp.net頁面框架用來在呈現到頁面之前自動保存頁面和每個控件的值。頁面發佈時,頁面處理執行的第一個任務之一是恢復視圖狀態。

b。控制狀態 - 如果您創建要求視圖狀態正常工作的自定義控件,則應該使用控件狀態以確保其他開發人員不會因禁用視圖狀態而中斷您的控制。

c。隱藏字段 - 與查看狀態類似,隱藏字段將數據存儲在HTML表單中,而不在用戶的瀏覽器中顯示。該數據僅在處理表單時可用。 d)。 Cookies - Cookie在用戶的瀏覽器中存儲一個值,瀏覽器將每個頁面請求發送到同一臺服務器。 Cookie是存儲網站上多個Web頁面必須可用的狀態數據的最佳方式。

e。查詢字符串 - 查詢字符串存儲URL中用戶可見的值。當您希望用戶能夠通過URL發送電子郵件或即時消息狀態數據時使用查詢字符串。

  1. 服務器 - 端狀態管理

一個。應用程序狀態 - 應用程序狀態信息可用於所有頁面,而不管哪個用戶請求頁面。

b。會話狀態 - 會話狀態信息可供用戶在單次訪問期間打開的所有頁面使用。

當應用程序重新啓動時,應用程序狀態和會話狀態信息都會丟失。要在應用程序重新啓動之間保留用戶數據,可以使用配置文件屬性來存儲它。

優勢客戶的

優勢 - 端狀態管理:

  1. 更好的擴展性:隨着服務器端的狀態管理,每一個連接到Web服務器在Web服務器上消耗內存的客戶端。如果一個Web站點擁有數百或數千個併發用戶,則存儲狀態管理信息所消耗的內存可能成爲一個限制因素。將這種負擔推給客戶可以消除潛在的瓶頸。

  2. 支持多個Web服務器:使用客戶端狀態管理,您可以將傳入請求分佈到多個Web服務器上,而無需更改您的應用程序,因爲客戶端提供了Web服務器處理請求所需的全部信息。通過服務器端狀態管理,如果客戶端在會話中間切換服務器,則新服務器不一定有權訪問客戶端的狀態信息。您可以將多個服務器與服務器端狀態管理一起使用,但您需要智能負載平衡(始終將客戶端請求轉發到同一臺服務器)或集中式狀態管理(狀態存儲在中央數據庫中,所有Web服務器訪問)。服務器的

優勢 - 端狀態管理:

  1. 更好的安全性:客戶端狀態管理信息可以被捕獲(無論是在運輸途中或在它被存儲在客戶端上),或惡意修改。因此,您絕不應使用客戶端狀態管理來存儲機密信息,例如密碼,授權級別或身份驗證狀態。

  2. 降低帶寬:如果存儲大量狀態管理信息,將信息來回發送到客戶端可能會增加帶寬利用率和頁面加載時間,從而可能增加成本並降低可伸縮性。增加的帶寬使用率對移動客戶端的影響最大,因爲它們通常連接速度非常慢。相反,你應該在服務器上存儲大量的狀態管理數據(比如超過1 KB)