HTML控件和Web控件有什么区别

html-css010

HTML控件和Web控件有什么区别,第1张

WEB服务器控件是HTML控件的一种扩展,区别是:

1)前者可以触发服务器控件特有的事件,后者只能通过回递的方式触发服务器上的页面级事件。

2)输入到前者中的数据在请求之间可以维护(即具有状态管理功能),而后者无法自动维护数据,只能使用页面级的脚本来保存和恢复。

3)前者可以自动检测浏览器并调整到恰当的显示,而后者没有自动适应功能,必须在代码中手动检测浏览器。

4)每个服务器控件都具有一组属性,可以在服务器端的代码中更改控件的外观和行为,而后者只有HTML属性。

如果某些控件不需要服务器端的事件或状态管理功能时,可以选择HTML控件,这样可以提高应用程序的性能。

HTML 控件不具备任何抽象能力。每种控件与 HTML 标记都是一一对应的。

Web 控件创建了更高级别的抽象,它们没有任何对应的 HTML 标记(如 Calendar 和 DataGrid)。因为它们不直接映射为 HTML 标记,所以 Web 控件还能够在适当的场合起到合并功能的作用(例如用一个 TextBox 控件来代替多个标记)。这种抽象为使用第三方提供的种类丰富的控件工具箱打开了方便之门。 HTML 控件提供了以 HTML 为中心的对象模型。每种控件都包括一个属性集,可以使用该属性集来控制标记的属性。这个属性集使用了字符串名/值对,并且不是强类型的。

在使用 HTML 控件时,编程方式与使用传统的 ASP 进行编程十分类似。因而,HTML 控件提供了一条快捷的移植途径 — 可以通过添加一个 runat=server 属性来将一个标记转变为一个服务器控件。

Web 控件提供了基于表单的、类似于 Visual Basic 的编程模式。它们也提供了属性集,但它们的主要目标在于提供一种安全且具有一致性的对象模型。每种 Web 控件都包含一组标准的属性,如 ForeColor、BackColor、Font 等。

这种对象模型还在像 Visual Studio NET 这样的设计工具中提供设计时体验。 HTML 控件不会自动检测请求页面的浏览器的能力,也不会修改它们提供的 HTML。

Web 控件能够自动对它们生成的结果进行调整,以确保输出结果在高级浏览器和低级浏览器上的工作同样出色。Web 控件还能够针对不同的浏览器提供不同的行为,从而充分发挥浏览器的潜力。例如,validation 控件还可以通过客户端的脚本来创建用于高级浏览器的具有高度交互性的页面。 HTML 控件允许完全控制所显示的内容以及发送到客户机浏览器的内容。

Web 控件提供了更为丰富的对象模型,以及适应多种浏览器的能力。因而,它们没有提供对输出结果的相同程度的控制能力。

在开发 Web 应用程序时,可以根据这两组控件的能力以及需求来从中进行选择。还可以选择在同一页上混合使用这两组控件,使用一种类型的控件并不妨碍同时使用另一种类型的控件。