自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET的EnableViewState屬性

開發(fā) 后端
本文介紹在ASP.NET中對各個WebForm控件引入以前沒有的EnableViewState屬性。我們知道對于 WebForm而言,其代碼是在服務(wù)器端的,以處理客戶端的請求。

在ASP.NET中對各個WebForm控件引入以前沒有的EnableViewState屬性。這個屬性究竟有什么用。我們知道對于 WebForm而言,其代碼是在服務(wù)器端的,以處理客戶端的請求。當(dāng)用戶通過瀏覽器瀏覽網(wǎng)頁的時候,會對網(wǎng)頁進(jìn)行某些操作,比如打開新鏈接,或單擊某個按鈕。在ASP中,這些是通過腳本語言對其進(jìn)行處理,之后再傳遞給服務(wù)器端。但是在ASP.NET下,由于采用了code behind技術(shù),在coding的時候,通常是將以前客戶端完成的工作放到了服務(wù)器端。

那么,服務(wù)器是怎么知道客戶的操作的呢?比如我在文本框輸入的內(nèi)容,或者單擊了登錄按鈕,服務(wù)器端是怎樣得到這些信息的呢?因?yàn)闆]有這些信息,服務(wù)器端就無法響應(yīng)客戶的請求。原理就是ASP.NET引用了viewstate的機(jī)制。在服務(wù)器端保存了網(wǎng)頁各個控件及頁面的狀態(tài),這其中包括各個控件在頁面上的布局,和他們各自的屬性。這些值就保存在ViewState下。我們可以觀察Aspx頁面的html源代碼,假設(shè)這個頁面上有一個button按鈕,和一個listBox控件,html文件如下:

  1. <input type="hidden" name="__VIEWSTATE" value=
    "dDwzODYzNDM5NTU7Oz7FvviJbq45bDa7QJaumIiOhZ8mOQ==" />   
  2. <input type="submit" name="Button1" value="Button" id="Button1" style=
    "height:40px;width:96px;Z-INDEX: 101; LEFT: 200px; POSITION: absolute; 
    TOP: 240px"
     />   
  3. <select name="ListBox1" size="4" id="ListBox1" style="width:152px;
    Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 120px"
    > 
  4. </select> 

我們它的不同之處,一是少了以前所必須響應(yīng)客戶端事件的腳本語言,一是多了一個名為”_VIEWSTATE”的屬性。其值是一長串字符。類型為 “hidden”。這個值記錄的就是各個控件和頁面的狀態(tài)信息。當(dāng)用戶對頁面進(jìn)行相關(guān)操作的時候,狀態(tài)值發(fā)生改變,并將改變的值傳遞給服務(wù)器端。服務(wù)器端在比較改變后的狀態(tài)值和初始值之間的區(qū)別,以響應(yīng)具體的請求。

一旦頁面的控件很多,這種頻繁的傳遞控件狀態(tài)值對網(wǎng)絡(luò)的消耗是很大的,因此,ASP.Net提供了EnableViewState屬性,系統(tǒng)默認(rèn)的值為true。當(dāng)設(shè)置為true時,在傳遞狀態(tài)值時就包括該控件;如果設(shè)置為false,則傳遞狀態(tài)值時則不包括它。既然狀態(tài)值不包括該控件,則客戶端對它進(jìn)行的操作,服務(wù)器端是不響應(yīng)的。

我們可以做個實(shí)驗(yàn),在Button1_Click事件中,編寫代碼:

ListBox.Items.Add(”客戶端點(diǎn)擊按鈕一次!”);

此時運(yùn)行該應(yīng)用程序,單擊網(wǎng)頁上的按鈕,在ListBox中會添加內(nèi)容,不斷地單擊,內(nèi)容則不斷添加。如果我們將ListBox的EnableViewState屬性改為false時,不斷單擊按鈕,則只能添加一次。

這樣有什么好處呢?如果我們在開發(fā)Web應(yīng)用程序時,某些控件是不需要接受用戶的操作或只需要接受一次操作的時候,我們可以將這些控件的EnableViewState屬性改為false,這樣可以優(yōu)化我們的程序,提高網(wǎng)絡(luò)訪問的速度。

【編輯推薦】

  1. ASP.NET調(diào)用WCF服務(wù)
  2. 淺析ASP.NET驗(yàn)證控件
  3. ASP.NET中WCF服務(wù)與ASMX服務(wù)的兼容性
  4. 詳解ASP.NET應(yīng)用程序
  5. ASP.NET的HttpModule
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-07-23 17:07:58

2009-07-22 17:55:52

2009-08-04 17:30:23

cookieless屬ASP.NET

2009-07-29 09:34:54

IsPostBack屬ASP.NET

2009-07-29 15:07:23

Request對象的屬

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-27 09:39:04

SelectMetho

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-27 10:35:33

TypeConvertASP.NET

2009-07-29 11:19:03

JavaScriptASP.NET

2009-07-29 14:52:12

IScriptContASP.NET

2009-07-29 16:33:28

GreeterLogiASP.NET

2009-07-27 15:48:43

2009-08-04 14:06:39

ASP.NET屬性表現(xiàn)

2009-08-04 13:35:16

ASP.NET自定義樣

2009-08-06 17:13:56

ASP.NET自定義控

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-07-29 17:11:25

ASP.NET ISA
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號