簡體   English   中英

Asp.Net ViewState性能

[英]Asp.Net ViewState performance

我是Asp.Net的新手。 我有一個關於viewstate控件的問題。 Msdn表示它是一種客戶端狀態管理,但建議由於性能問題而在頁面上有大數據時將其禁用。

那么,如果這是客戶端狀態,它將如何影響網站的頁面加載時間?

對於ViewState是什么和做什么的所有描述,全都歸結為事實:ViewState是一堆數據,已序列化,以64位編碼,並塞入了input type="hidden"頁上的input type="hidden"元素。

每次將頁面呈現給客戶端時,ViewState都會發送給客戶端。 客戶端每次將表單發布到服務器時,ViewState都會發送到服務器。

因此,如果ViewState包含例如200KB的數據,則200KB隨每個請求來回發送。 200KB的隱藏信息,在頁面呈現中看不到 潛在的不重要數據。 (基本上是手腳。)

是否所有這些數據都需要隨每個請求來回發送? 偶爾會很方便,但是是否需要針對每個請求管理所有狀態? 可能不是。 因此,您可以通過不管理頁面中的狀態並為某些頁面元素適當禁用ViewState來調整性能。

某些狀態可以完全在服務器端進行管理,某些狀態可以在其他頁面元素中進行更隱式的管理,而某些根本不需要進行管理。 (由於Web應用程序被設計為無狀態的,因此,如果您可以管理最后一個選項,則是理想選擇。)

什么是視圖狀態及其在ASP.Net中的工作方式

Web應用程序是無狀態的。 這意味着,每當我們向服務器請求獲取頁面的請求時,都會創建一個頁面的新實例,並且在往返之后,我們的頁面會立即丟失。 它僅由於一台服務器而發生,因此創建了Web頁的所有控件,並且在往返之后服務器破壞了所有實例。 因此,為了保留控件的值,我們使用狀態管理技術。

http://www.c-sharpcorner.com/UploadFile/225740/what-is-view-state-and-how-it-works-in-Asp-Net53/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM