web服务器控件并非只是运行在服务器端这么简单,它是NET中封装好的组件,每个控件都是一个对象,属于某个基类,有自己的属性,事件和方法由在net framework下执行
而HTML只是普通的HTML标记,就算加上runat=server也没有服务端控件那么强大的方法,只是有简单的属性和事件而已HTML控件有runat=server后在服务器端加载,可以通过服务器端 *** 纵这个控件,比如赋value值和真正的Web服务器控件还差的很远充其量只能算是一行代码加一个 runat="server" 就行了
例如:
<input type="button" id="btnFir" runat="server" />一个HTML服务器控件的属性集,与对应标签的常用属性集匹配。控件具有InnerText\InnerHtml\Style和Value等属性,一级Attributes等集合特征。每次在页面来源中发现标记了runat="server"的HTML标签时,ASPNET运行库就会自动地创建对应的HTML服务器控件的实例。 现有的HTML服务器空间集并没有涵盖任一给定版本的HTML模式所有可能的HTML标签。只有最常用的标签才进入SystemWebUIHtmlControls命名空间。<iframe>、<frameset>、<body>、<hn>等标签,一级<fieldset>、<marquee>和<pre>等最不常用的标签,都被省去了。 然而,对于在服务器上使用和配置的那些标签,缺乏一种专用的服务器控件并不会限制你的编程能力。我们只需要使用一个更一般的编程接口---HtmlGenericControl类。 2Web服务器控件 Web服务器控件比HTML服务器控件具有更多特征。Web服务器控件不仅包括按钮和文本框等输入控件,而且还包括专用控件,例如日历、下拉列表、TreeView和DataGrid。Web服务器控件还包括一些非常像HTML服务器控件的组件。但是Web服务器控件比对应的HTML服务器控件更抽象,因为他们的对象模型不一定反应HTML语法。例如,让我们比较一下HTMl服务器控件和Web服务器TextBox控件。 Html服务器文本控件具有如下标记:
<input runat="server" id="firsName" type="text" value="dino" /> Web服务器TextBox控件具有如下标记:
<asp:textbox runat="server" id="firstName" text="dino" /> 这两个控件都生成相同的HTML标记代码。然而,HTML服务器文本控件的编程接口非常接近HTMl<input>标签的编程接口,而Web服务器TextBox控件的方法和属性以一种更抽象的方式进行命名。例如,为了设置HTMl服务器文本框的内容,必须使用Value属性,因为Value是对应的HTMl属性名。如果使用Web服务器TextBox控件,则必须设置Text属性。WEB控件可以响应服务器端事件,可以在后台代码中设置相关属性和方法等!
HTML不可以
WEB服务器控件需要通过服务器处理后译为HTML控件再发送给浏览器,所以比较耗费服务器资源,并由于有VIEWSTATE,所以在回送的时候会保持控件状态(也可以设置不保存)也因此增加了回送信息量。
HTML直接发送到浏览器,不另耗费服务器资源,但无状态保存!
获得HTML控件的值 需要使用REQUEST的FORM 方法,WEB控件就可以直接通过属性直接处理!
所以,一般来说,对于不需要保存控件状态,并无什么对值处理的地方就可以使用HTML
如果需要对控件进行动态的处理,或要保存其状态等 就可以WEB服务器控件!
WEB服务器控件用起来个人认为要方便些,但是就是另外多耗费服务器资源!
很多书上都说,考虑性能的话在能不用WEB服务器控件的地方就尽量不用。
什么时候用什么时候不用还是要看具体情况,在条件宽松的情况下就看个人习惯了aspnet控件是服务端控件
响应服务端事件
HTML控件是客户端控件
响应客户端事件
如果你对服务端/客户端不明白的话先去了解一下
简单来说
HTML客户端的事件是不会提交给服务端的
比如说点击一个按钮 改变文字的颜色
只是针对用户机器本身的 不会发送数据包给远程的服务器
而aspnet按钮点击后
将会以post或者get形式发送给服务器
进行数据库 *** 作等等 页面提交后将会刷新
但是ajax技术可以使客户端控件发送请求给webservice
具体的用法
如果强调客户端的 应用
用客户端控件更能使用户感觉到方便
不用刷新页面
而需要数据库等 *** 作时 肯定要用服务端控件
但是没有绝对的
我现在做的项目就是两者结合用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)