1、頁面重定向方式中常用的兩
(1)Redirect 方法將客戶端重定向到新的頁面,只是簡單地終止當前頁面,並轉入新的頁面開始執行,對轉入的頁面無任何限制。
(2)Transfer 方法終止當前頁的執行,並為當前請求開始執行新的頁面。把執行流程從當前頁面轉到同一服務器中的另一頁面,但是新的頁面仍然使用當前頁面創建的應答流。
這兩種方法的主要區別是:(1)Redirect 方法可以實現任意網頁間的重定向,而Transfer 方法只能實現同一服務器中 ASPX 頁面間的重定向。
(2)Redirect 方法不會保留當前頁面的表單(Form)數據和查詢字符串(QueryString),而Transfer 方法則可以保留這些數據。
2、QueryString 的使用最簡單最常用的傳值方法,與傳統的 Get 方法相對應,使用變化相對較小。數據直接在URL 中以明文傳遞,對於用戶來說是可見的,但是可以加密。此方法的優點是簡單、方便,缺點是能傳遞的數據量少,而且不能傳遞對象。
3、Form 的使用通過表單中的控件來傳遞數據,與傳統的Post 方法相對應,使用變化相對較大。
該方法的優點是可以傳遞大量數據,並且可以訪問源頁面控件中的數據;缺點是操作比較復雜,生命周期僅限於當前請求。
4、Session 的使用 Sessionss 對象為當前用戶會話提供信息。
通過其屬性可以方便地設置和檢索ASP.NET 會話狀態變量,這些變量的值在會話持續期間保留不變,並且可以被同一個會話中的所有頁面訪問,這就為頁面傳值提供了途徑和方便。
該 方 法 的 特點是 :
(1)用戶數據存儲在服務器端;
(2)ASP.NET 中的Session 對象也可以不依賴Cookie 而正常工作;
(3)可以直接存儲對象,且無大小限制;
(4)有效期與用戶的活動時間有關,具體為用戶活動時間+自定義延遲時間。該方法的缺點是:由於Web 應用程序對每個用戶都會生成 Session 變量,因此它會隨着用戶數量的增多而加重服務器的負擔。如果數據量比較小,Sessionss 對象是保存只需要在當前對話中保持的特定數據的極好位置。
5、cookic:該方法的缺點是:並非所有的瀏覽器都支持Cookie;用戶可以禁用和刪除它;信息采用明文保存,安全性差。當特定的用戶需要特定的數據片,並且需要把數據在某個可變的時段中保持的時候,Cookie 就非常方便,存在於客戶端,不占用服務器資源。
6、Static:靜態變量,可能直接通類名來調用,優點是如果善加利用,則可以有效提高數據傳遞效率,缺點是如果濫用,則會導致用戶或頁面間數據紊亂,造成極大的隱患。
7、Cache 緩沖機制,大量的服務器資源來創建內容存在服務器內存中,提高應用程序性能,優點是:傳遞參數大小和數量沒有限制,速度快。缺點是:當緩沖太多時,服務器會地緩沖采用優先級排序,把小的不常使用的清除掉,以此導致傳參失敗,相對操作機制也比較復雜。
8、Context 的使用 Context 對象包含與當前頁面相關的信息,提供對整個上下文的訪問,包括請求、響應、以及上文中的Session 和 Application 等信息。可以使用此對象在網頁之間共享信息,從而實現頁面間的傳值。與使用 Form 的方法類似,該方法也能保持大量的數據,缺點也相同,但使用方法相對比較簡單。
9、ViewState 的使用 ViewState 是ASP.NET 用來在同一頁面的多個請求之間保存和還原服務器控件視圖狀態的一種機制。與傳統的“同一頁面”不同,ASP.NET 中“同一頁面”的每一個請求都會導致服務器重新生成該頁面,但是新生成的頁面並不包含原來頁面的數據。ViewState 的任務就是保存原來頁面中服務器控件視圖狀態的數據供新頁面使用。從這個意義上講, ViewState 也可以看作是一種在頁面間傳遞數據的工具。 ViewState 的工作原理是:作為一個隱藏的窗體字段在客戶端和服務器之間傳遞,可見,濫用ViewState 會加重頁面回傳的負擔,從而降低應用程序的性能。
10、Web.config 和Machine.config 的使用 Web.config 文件用來設置每個ASP.NET 應用程序的一些屬性,Machine.config 文件用來設置所有應用程序基礎信息。這 2 種文件保存的數據一般都很小,多為明文,特別適合保存一些字符串常量, 如數據庫連接信息。此外, Web.config 文件是可以擴展的,因此,也可以用來傳遞變量。因為這 2 種文件會被自動緩存,所以不存在因磁盤I/O 產生的性能瓶頸問題。