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

比較ASP.NET中的html控件和web控件

開發(fā) 后端
本文通過(guò)比較asp.net中html控件和web控件,總結(jié)兩者的區(qū)別。

html控件和web控件雖然好多功能相同并且長(zhǎng)得很像,但是它們的內(nèi)部實(shí)現(xiàn)機(jī)制是完全不一樣的,Web控件要比Html控件執(zhí)行效率要好。   

html控件和web控件比較1:使用起來(lái)也相當(dāng)方便,舉個(gè)簡(jiǎn)單的例子,例如Button的生成:

Html控件是將龐大控件集合全部弄到頁(yè)面中,用到哪個(gè)功能,就設(shè)置一下屬性,如下:

  1. < input type=submit/button runat=server>  

這樣會(huì)占用相當(dāng)大的控件資源 。

Web控件是將集成式的拆解成單功能的:

  1. < asp:button id="btnOK" />  

這樣就可以節(jié)省不必要的控件所占用的資源了 

html控件和web控件比較2:Web控件具有回送功能,能夠用ViewState維持控件的狀態(tài). Html控件則不能,當(dāng)點(diǎn)擊頁(yè)面的操作,其狀態(tài)就會(huì)丟失.

可以做這樣的一個(gè)實(shí)驗(yàn):

I. 分別建立兩個(gè)文件: a.html b.aspx

II.在a.html頁(yè)面中加Html控件的RadioButton和一個(gè)button,在b.aspx中加Web控件的RadioButton和一個(gè)button

III.a.html直接雙擊瀏覽器運(yùn)行,b.aspx通過(guò)IIS運(yùn)行

IV.在a.html運(yùn)行界面中,選中RadioButton,再單擊Button按鈕,會(huì)發(fā)現(xiàn)RadioButton會(huì)

取消選中(丟失其狀態(tài)),但在b.aspx頁(yè)面執(zhí)行同樣的操作,RadioButton不會(huì)丟失,因?yàn)閂iewState

給它保存了狀態(tài). 您可以在運(yùn)行界面點(diǎn)擊瀏覽器菜單"查看"->“源文件",打開Html代碼文件,

找到加密后的ViewState,類似于下面:  

  1. < input type="hidden" name="_VIEWSTATE" value="dDw0ajfmafmjfzzmj4"/>  

其實(shí)ViewState實(shí)現(xiàn)原理也是將一些信息放到隱藏的一個(gè)控件中,并且asp.net生成的ViewState信息是存儲(chǔ)在客戶端的,這里要注意的一點(diǎn)是:只有當(dāng)格式為*.aspx文件,并且控件具有屬性:"runat=server"時(shí),回送功能才能打開 

html控件和web控件比較3:Html控件與Web控件***的區(qū)別是它們對(duì)事件處理的方法不同。對(duì)于Html窗體控件,當(dāng)引發(fā)一個(gè)事件時(shí),瀏覽器會(huì)處理它。但對(duì)于Web控件,事件僅由瀏覽器生成,但瀏覽器不會(huì)處理它,客戶端要給服務(wù)器發(fā)個(gè)信息,告訴服務(wù)器處理事件。不過(guò)有些事件,比如:     按下鍵/移動(dòng)/鼠標(biāo)等事件,asp.net中沒(méi)有這些事件 (因?yàn)檫@些事件即時(shí)性強(qiáng),服務(wù)器處理得不夠及時(shí)),這時(shí)候Html控件就發(fā)揮其作用了,結(jié)合Html事件協(xié)助完成.

如下是一些Html常用的事件:

在瀏覽器上執(zhí)行的Html控件事件: 

單擊時(shí)觸發(fā):  

  1. < INPUT type="button" value="Click Me" onclick="alert('Hi,你好!');">  

鼠標(biāo)彈起時(shí)觸發(fā):

  1. < INPUT type="button" value="Click Me" onmouseup="alert('Hi,你好!');">  

懸浮在控件上方時(shí)觸發(fā)

  1. < INPUT type="button" value="Click Me" onmouseover="alert('Hi,你好!');">  

鼠標(biāo)在控件上方移動(dòng)時(shí)觸發(fā)  

  1. < INPUT type="button" value="Click Me" onmousemove="alert('Hi,你好!');">  

//雙擊控件時(shí)觸發(fā)   

  1. < INPUT type="button" value="Click Me" ondblclick="alert('Hi,你好!');">   

//當(dāng)焦點(diǎn)在控件時(shí),按鍵時(shí)觸發(fā)

  1. < INPUT type="button" value="Click Me" onkeypress="alert('Hi,你好!');">  

//按鍵按下時(shí)觸發(fā)   

  1. < INPUT type="button" value="Click Me" onkeydown="alert('Hi,你好!');">    

在不需要與后臺(tái)進(jìn)行交互時(shí)就使用HTML控件,它的占用的資源比較少,速度也比較快,在需要與后臺(tái)進(jìn)行交互時(shí),就使用WEB控件,或者在HTML 控件上加上runat="server" 也可以將一個(gè)HTML控件轉(zhuǎn)換成交互控件,但這樣占用的資源就和Web控件沒(méi)任何分別了。

WEB控件可以響應(yīng)服務(wù)器端事件,可以在后臺(tái)代碼中設(shè)置相關(guān)屬性和方法等!HTML不可, WEB服務(wù)器控件需要通過(guò)服務(wù)器處理后譯為HTML控件再發(fā)送給瀏覽器,所以比較耗費(fèi)服務(wù)器資源,并由于有IEWSTATE,所以在回送的時(shí)候會(huì)保持控件狀態(tài)(也可以設(shè)置不保存)也因此增加了回送信息量。HTML直接發(fā)送到瀏覽器,不另耗費(fèi)服務(wù)器資源,但無(wú)狀態(tài)保存!   

獲得HTML控件的值 需要使用REQUEST的FORM 方法,WEB控件就可以直接通過(guò)屬性直接處理!  

所以,一般來(lái)說(shuō),對(duì)于不需要保存控件狀態(tài),并無(wú)什么對(duì)值處理的地方就可以使用HTML 如果需要對(duì)控件進(jìn)行動(dòng)態(tài)的處理,或要保存其狀態(tài)等 就可以WEB服務(wù)器控件!WEB服務(wù)器控件用起來(lái)個(gè)人認(rèn)為要方便些,但是就是另外多耗費(fèi)服務(wù)器資源!  

很多書上都說(shuō),考慮性能的話在能不用WEB服務(wù)器控件的地方就盡量不用。   

什么時(shí)候用什么時(shí)候不用還是要看具體情況,在條件寬松的情況下就看個(gè)人習(xí)慣了。

區(qū)別就是服務(wù)器控件有runat=server不是很必要的話用html,web太浪費(fèi)資源。

【編輯推薦】

  1. ASP.NET1.1驗(yàn)證碼產(chǎn)生的原理及應(yīng)用
  2. 靜態(tài)文件處理:ASP.NET1.1和ASP.NET2.0對(duì)之不同
  3. 在ASP.NET中執(zhí)行windows程序(ASP.NET1.1)
  4. 對(duì)asp.net1.1開發(fā)模板類的修改說(shuō)明
  5. 用ASP.NET連接Oracle9i(ASP.NET1.1)

     

責(zé)任編輯:book05 來(lái)源: hi.baidu
相關(guān)推薦

2009-08-04 11:29:14

HTML代碼ASP.NET控件

2009-08-03 15:43:22

asp.net控件

2009-07-27 13:20:19

HTML Map控件ASP.NET

2009-07-24 09:57:25

ASP.NET HTM

2009-09-11 09:09:00

ASP.NETAdRotator控件

2009-07-20 13:32:24

ScriptManagASP.NET

2009-07-27 13:52:36

Panel控件ASP.NET

2009-07-21 17:18:26

UpdateProgrASP.NET AJA

2009-07-20 13:54:31

ScriptManagASP.NET AJA

2009-07-28 13:22:13

DataList和ReASP.NET

2009-08-03 18:15:05

ASP.NET數(shù)據(jù)綁定

2009-08-07 17:41:07

ASP.NET Web

2009-08-25 15:18:58

ASP.NET數(shù)據(jù)We

2009-08-17 10:16:26

ASP.NET的WEB

2009-08-04 10:43:59

ASP.NET控件開發(fā)

2009-08-19 13:44:00

ASP.NET Lis

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-08-05 15:57:03

ASP.NET控件ID

2009-08-17 09:24:25

ASP.NET控件

2009-07-27 16:19:59

ASP.NET報(bào)表控件
點(diǎn)贊
收藏

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