HTML控件与Web控件的比较

    Mircrosoft对于在ASP.NET中为何开发HTML控件和Web控件两种服务器控件有详细的解释说明,并且对其作用和适用范围进行了比较。所以这里就从开发人员的使用角度简述其差异。

    这两组控件的异同可以通过以下方面来比较:

    首先,在控件抽象能力方面,HTML控件不具备任何抽象能力。每种控件与HTML标记都是一一对应的。而Web控件创建了更高级别的抽象,它们没有任何对应的HTML标记(如Calendar和DataGrid)。

    其次,二者对象模型不同。HTML控件提供了以HTML为中心的对象模型。每种控件都包含一个属性集,可以使用该属性集来控制标记的属性。这个属性集使用了字符串名/值对,并且不是强类型的。在使用HTML控件时,编程方式与使用传统的ASP进行编程十分相似。因而,HTML控件提供了一条快捷的移植途径---- >通过添加一个runat="server"属性就可以把HTML标记转变成一个服务器控件。Web控件提供了基于表单的编程模式。它们也提供属性集,但它们的主要目标在于提供一种格式丰富、类型安全且具有一致性的对象模型。每种Web控件都包含一组标准的属性,如ForeColor、BackColor、Font等。

    再次,在目标浏览器的显现效果不同。HTML控件不会自动检测请求页面的浏览器的能力,也不会修改它们提供的HTML。在使用这组控件时,开发人员要负责确保页而能同时在高级和低级浏览器上工作。而Web控件能够自动对它们生成的结果进行调整以确保输出结果在高级和低级浏览器上的工作同样出色。Web控件还能够针对不同的浏览器提供不同的行为,从页充分发挥浏览器的潜力。例如,validation控件还可以通过客户端的脚本来创建用于高级浏览器的具有高度交互性的页面。

    最后,对生成的HTML的控制不同。HTML控件允许开发人员完全控制所显示的内容以及发送到客户机浏览器的内容。而Web控件提供了更为丰富的对象模型,以及适应多种浏览器的能力。因而,它们没有提供对输出结果的相同程度的控制能力。

    从开发人员使用控件的角度,可以进行一个更为清晰简单的比较。

    事实上,通常可以把 Web控件看作HTML控件的超集,虽然本质上这一点是不恰当的。对于开发人员来说,我们可以这样看待外观相似HTML控件和web控件的关系。功能基本对应,但是后者可以更加灵活地动态编程控制,当然这也意味着其性能可能会差一些。不过,这并不是绝对的。因为HTML控件是将庞大的控件集合全部弄到页面中,用到哪个功能,就设置某个属性。如<input type="submit/button runat="server">,各种input控件的差异均由type属性决定,这样占用相当大的控件资源。而Web控件是将集成式的拆解成单功能的。例如<asp:Button id="btnOk" runat="server">。在这样的情况下,反而是Web控件更加有效。

    此外,web控件具有回送功能,能够用ViewState维持控件的状态。这一特性有时候得web控件更为方便。

    最后,HTML控件与web控件最大的区别是它们对事件处理的方法不同。对于HTML窗体控件,当引发一个事件时,浏览器会处理它。但对于Web控件,事件仅由浏览器生成,但浏览器不会处理它,客户端要给服务器发个信息,告诉服务器处理事件。不过有些事件,比如:按键/移动鼠标等事件,ASP。NET中没有这些事件(因为这些事件即时性强,服务器处理得不够及时),这时候HTML控件就发挥其作用了,可以结合HTML事件协助完成。

     在开发web应用程序时,可以根据这两组控件的能力以及实际需求从中进行选择,而且还可以选择在同一页面上混合使用这两组控件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值