asp.net服务器控件会不会影响性能

jb303 2006-11-21 11:55:42
比如php,asp里没有服务器控件,它们通过request在表单中取值,asp.net里可以方便的使用服务器控件。听人说一个服务器控件在服务器端会保存一个实例,是不是会很影响性能。另外比如一个textbox,或是一个下拉框,一个单选框我们应该在什么时候用服务器控件,什么时候就直接用html控件
...全文
609 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
双黑in上海 2006-11-21
  • 打赏
  • 举报
回复
服务器控件就是大大的提高你写代码的效率。
比如数据控件。gridview之类的。如果你自己手写。肯定效率要慢慢很多很多。而且容易出错。
当然有些不必要的东西就不必用服务器控件的。

  • 打赏
  • 举报
回复
实际上要看效果,如果做出了完全一样的效果——组件式开发,那么你的那个东西即使不叫做asp.net也可以叫做其他的什么。这跟大多数开发平台的进化是一样的,当你强调评价原本用及其低级的平台开发好的东西需不需要重写的时候,其实谁也没有强迫你,谁也没有强迫你将asp、php中原来的系统重写,除非你想将来做的更好。
查理先生 2006-11-21
  • 打赏
  • 举报
回复
选择控件的信息

一般来说,Web 服务器控件比 HTML 服务器控件功能强一些,并且具有功能更丰富的对象模型。如果您打算编写 Web 窗体页以便所有处理都在服务器上进行,则 Web 服务器控件应是首选。

Web 服务器控件
Web 服务器控件旨在提供一种快捷方便的方式来给 Web 页添加功能,例如,显示数据或选择日期。它们还设计用于那些不区分用户浏览器类型的应用程序。

Web 服务器控件与 HTML 服务器控件相比具有以下优点:

Web 服务器控件的类型化对象模型编程简洁并且易于检错。
它们自动为下级 (HTML 3.2) 和上级 (HTML 4.0) 浏览器生成正确的 HTML。
它们可用于生成更复杂的服务器控件(例如 Calendar 和 DataGrid)。

Web 服务器控件的缺点是直接控制服务器控件如何呈现在发送给浏览器的页上的能力较弱。例如,您不能在设计时将 HTML 属性添加到控件。相反,HTML 元素及其属性是根据该控件的编程方式自动创建的。

HTML 服务器控件
HTML 服务器控件在您需要同时在服务器和客户端编程的情况下很有用,原因是该控件在两个运行时环境中是相同的。这使控件的客户端脚本编写起来更容易。

在服务器上处理 Web 窗体页之后,将使用来自基础 HTML 元素的信息创建每个 HTML 服务器控件的实例。控件类识别的属性将变为属性。未知属性将被略过,以便它们像已经在页中创建那样显示在浏览器中。(可以在服务器代码中通过 Attributes 集合访问未知属性,但未知属性不能成为控件属性。)

使用 HTML 服务器控件也是将现有 HTML 或 ASP 页转换为 Web 窗体页的捷径。通过将页上的单独 HTML 元素转换为 HTML 服务器控件,可以在不影响页上其余部分的情况下迅速将 Web 窗体功能添加到页上。

HTML 服务器控件的缺点如下:

所有值均为字符串,没有不具有类型安全性。
可支持多种浏览器,但您必须使用扩展样式,自己对其进行编程。不能自动检测用于样式的浏览器功能。


cat_hsfz 2006-11-21
  • 打赏
  • 举报
回复
首先直接回答你的问题:会影响性能。

如何最不影响?你直接使用汇编写,通过中断操作网卡,然后提取HTTP信息,那样最少影响,但显然不是你所想要做的。ASP.NET中就应该用控件,而且在ASP.NET引擎设计时就为控件作了相当的优化,当然如果你使用方式不正确,那才可能使真正影响效率的根源。

对我来说,HtmlControl和WebControl没什么区别,按需求来选择使用,当它们都无法满足我的需求时,就自行编写控件。
bidisty 2006-11-21
  • 打赏
  • 举报
回复
方便和效率不能兼得,自己要权重!
cpp2017 2006-11-21
  • 打赏
  • 举报
回复
会影响,能不用尽量不用.但有时为了方便还是要用的
milozy1983 2006-11-21
  • 打赏
  • 举报
回复
如果服务器控件不好,为什么还有人专门开发服务器控件.服务器控件是影响了点速度,但是对于安全性和开发的便捷性起到了更大的作用.
jb303 2006-11-21
  • 打赏
  • 举报
回复
大家用这个多还是html控件多?是不是基本上都用html的控件,很少很少用服务器控件,我们项目里有人大量的用了服务器控件,大家认为有必要把它们都换掉吗?
jwda7sgr 2006-11-21
  • 打赏
  • 举报
回复
分场合用
huo789 2006-11-21
  • 打赏
  • 举报
回复
个人认为:对于初学的,不怎么了解HTML的方便一些,减少手写脚本出错几率
huo789 2006-11-21
  • 打赏
  • 举报
回复
肯定会影响,提供这些服务器控件只是为了方便可视化使用
处理时就多了转换成标准的HTML这一步
jb303 2006-11-21
  • 打赏
  • 举报
回复
应该用在什么场合,能举个例子吗?
luanwey 2006-11-21
  • 打赏
  • 举报
回复
当然会。不过看你的程序的需求。。。对性能要求不高。。还是用服务器控件会减少开发难度。
jijl2001 2006-11-21
  • 打赏
  • 举报
回复
会影响的,尽量不要用
风之影子 2006-11-21
  • 打赏
  • 举报
回复
当然,建议少用
tete 2006-11-21
  • 打赏
  • 举报
回复
很难权衡啊,多用吧,算是学习
股神 2006-11-21
  • 打赏
  • 举报
回复
up
myminimouse 2006-11-21
  • 打赏
  • 举报
回复
用一下就知道了,别人说的你听了也没感觉
shoutor 2006-11-21
  • 打赏
  • 举报
回复
会影响,尤其是使用viewstate,会生成一个名为_viewstate的hidden表单,里面有大量的数据,占带宽
gui0605 2006-11-21
  • 打赏
  • 举报
回复
只在必要时使用服务器端控件

ASP.NET中新引入了一种在服务器端运行的被称作Web Server Controls的控件,在代码中,它们经常通过下面的语法被说明:

<asp:TextBox id="txtLastName" size="40" runat="server" />
它们有时也被称作ASP控件。服务器端控件是由runat属性指示的,它的值总是“server”。
通过添加runat属性,一般的HTML控件可以被很方便地转换到服务器端运行,下面是一个简单的例子:

<input type="text" id="txtLastName" size="40" runat="server" />
可以通过id属性中指定的名字,我们可以引用程序中的控件,可以通过编程的方式设置属性和获得值,因此,服务器端处理方式有较大的灵活性。

这种灵活性是有一定代价的。每种服务器端控件都会消耗服务器上的资源。另外,除非控件、网页或应用程序明确地禁止view state,控件的状态是包含在view state的隐藏域中,并在每次回送中都会被传递,这会引起严重的性能下降。
在这方面的一个很好的例子是,网页上控件表格的应用,如果不需要在代码中引用表格中的元素,则使用无需进行服务器端处理的HTML表格。我们仍然可以在HTML表格单元中放置服务器控件,并在代码中引用服务器控件。如果需要引用任意的表格元素,例如指定的单元,则整个表格必须是服务器控件。
加载更多回复(11)

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧