Web服务器控件、Html服务器控件和Html控件
Html控件无需多说 最常用的控件 ASP时代的唯一选择 世界开始的时候它就在那。当微软推出.Net后 为了提供ASP.Net Web Form开发以和Win Form开发相似的开发体验 推出了Web服务器控件 Server Control 又称ASP.Net服务器控件。而Html服务器控件 Html Server Control 则可以看做是为了向下兼容 便于原本基于ASP系统的移植而推出的一种介于Html控件和Web 服务器控件的权宜产物。
Web服务器控件、Html服务器控件和Html控件的区别
Html控件的标签 input id Button type button value Button /
Html服务器控件的标签 input id Button type button value Button runat server /
Html服务器控件其实就是Html控件的基础上加上runat server 所构成的控件
Web服务器控件的标签 asp:Button ID Button runat server Text Button /
Web服务器控件会根据情况在浏览器端产生一个或多个对应的Html标签。
Html服务器控件位于System.Web.UI.HtmlControls
Web服务器控件位于System.Web.UI.WebControls
Web服务器控件与Code Behind的Class文件相结合 提供了包含属性、方法和事件的完整对象模型。
Html控件不能在服务器端控制 只能在浏览器端通过javascript等脚本语言操作。
Html服务器控件设定了runat server 属性后 页面对象会将该控件载入控制器 服务器端的代码就能对其进行控制。
Html服务器控件在页面执行完毕后会被转换成Html标注 然后当成字符串流发送到浏览器端 浏览器端的脚本能够进行操作。
Web服务器控件的操作则是由页面把Form发回服务器 然后完全由服务器端代码处理。
Html控件的事件处理发生在浏览器端 除非Submit 否则不会发生Postback
Html服务器控件的事件处理发生在浏览器端。
Html服务器控件如果要Postback到服务器端 调用服务器端的方法 需要添加onserverclick之类的事件。
Web服务器控件部分默认为AutoPostback 或者可以设置AutoPostback。
在产生Postback或是重新生成页面时 Web服务器控件自动保存状态到ViewState。
Html控件和Html服务器控件需要自己编码实现。
Web服务器控件、Html服务器控件和Html控件的优缺点
Html控件和Html服务器控件需要编码以保持浏览器兼容。
Web服务器控件能够检测浏览器的兼容性 保持表现的一致。
Html服务器控件通过为Html控件添加runat server 以实现ASP程序的移植。
将ASP程序移植成使用Web服务器控件的ASP.Net程序相当于重写新的应用。
Html控件和Html服务器控件是标准控件 能够用浏览器端脚本语言操作。
使用Web服务器控件提供的对象模型 能够得到和Win Form类似的编程体验 而且无需再学习不同的脚本语言。
Web服务器内部的代码并不开放 你无法获得比较直接的控制。
小结
个人认为 Html服务器控件作为一个过渡的实现 虽然能够兼顾浏览器端和服务器端 终究是一个奇怪的存在 尽量少使用为妙。从微软的角度 良好封装的Web服务器控件提供了大量的便利 同时Web Form和Win Form开发模式的差异使得相互的经验能够互通 当然是多使用Web服务器控件为好。不过Web服务器控件的缺点是占用服务器资源 页面Postback过多 Ajax啊Ajax 。所以现实是存在的就是合理的 Html还是要会地 Javascript当然是要好好学地 Web开发各种奇奇怪怪的标签共存于Page中的场面短时间内是不可能消失地。





本文链接: http://sunhank.immuno-online.com/view-705124.html