写ASP.NET程序,都用服务器控件会带来最坏的后果是什么?(服务器一般的情况)HTML标签在加上runat="server"和标准的服务器标签的区别在哪里?

刘津宇教编程
企业官方账号
2008-11-25 02:12:17
写ASP.NET程序,都用服务器控件会带来最坏的后果是什么?(服务器一般的情况)HTML标签在加上runat="server"和标准的服务器标签的区别在哪里?
服务器标签和客户端标签使用的最佳方案是什么?什么时候使用?
...全文
1364 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
毛员外 2011-08-29
  • 打赏
  • 举报
回复
别说都不用,也别说都用啦,看情况噻
像label绑一句话,静态去显示,我想没人会加个label哇
像绑表结构数据之类的,我就喜欢服务器,嘿嘿,后台生成,我才没那么喜欢被虐,除非项目要去不准用
要非得纠结用不用服务器,那就怎java,嘿嘿
melon23 2008-12-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 viena 的回复:]
如果是流量巨大的网站,就尽量不用服务器控件
如果是软件,或网站的管理后台,用服务器控件还是比较方便
[/Quote]
长见识了
后浪 2008-11-30
  • 打赏
  • 举报
回复
呵呵,那确实
刘津宇教编程 2008-11-30
  • 打赏
  • 举报
回复
当然本来一行字就偏要用一个label,这样的做法不在我的描述之内了!前辈就是老道啊!不过我觉得ASP.NET还是比ASP好用的多啦!
  • 打赏
  • 举报
回复
实际上,你可能没有用几个,就已经懒得使用asp.net技术而还是想写asp程序啦。
  • 打赏
  • 举报
回复
什么叫做“都用”啊?你先偷换一个前提概念,然后再打大棒子?说说什么叫做“都用”,如果有一个地方哪怕写个

这里是一行字

而没有写

<asp:Label runat="server" ID="Label1" Text="这里是一行字" />

这样算不是就破除了你"都用服务器控件"这个说法?
flyerwing 2008-11-30
  • 打赏
  • 举报
回复
应该是服务器跟浏览器间发送处理的数据量太大,

会增加服务器的消耗,所以适当使用还是很好的,
我是菜鸟,说的不对大家指正!
谢谢1
刘津宇教编程 2008-11-30
  • 打赏
  • 举报
回复
楼上真幽默!
Adechen 2008-11-26
  • 打赏
  • 举报
回复
各有各的好处,按情况使用,该用server控件就不用html的
lxl_sprots 2008-11-26
  • 打赏
  • 举报
回复
1.当你使用服务器控件的时候 会给 服务器造成一定的压力,但是由于现在的机器的性能越来越好,这些方面不用太多的考虑,还有就是 如果要考虑性能话,那就要看访问量的大小了,如果是个 大访问量的 网站,那么你就少用点服务器控件,因为服务器控件每次都要 回发到服务器 这样会加大服务器的负荷;
2.当你处理一些比较保密的数据的时候最好在后台处理,这样话用服务器控件,是比较好的。。。其实大多情况下,用服务器控件没有关系的 。。。
3.如果你全用的是客户端控件,那就回到了asp 时代了(虽然语言不同^_^)。。。
CRMNet 2008-11-26
  • 打赏
  • 举报
回复
学习
effun 2008-11-26
  • 打赏
  • 举报
回复
另外再补充一下,还有一个最直接的后果就是会大大增加开发时候代码的输入量,因为要为每个Tag都加上这个不必要的属性。
增加了代码输入量,就自然会增加键盘敲击的次数,从而会加快键盘老化的速度,缩短键盘的使用寿命。
键盘坏了当然要再买一块咯,那就增加了项目成本,无谓的开销啊!
三下鱼 2008-11-26
  • 打赏
  • 举报
回复
ASP.NET Web 服务器控件概述

在创建 ASP.NET 网页时,您可以使用以下类型的控件:

*

HTML 服务器控件 对服务器公开的 HTML 元素,可对其进行编程。HTML 服务器控件公开一个对象模型,该模型十分紧密地映射到相应控件所呈现的 HTML 元素。
*

Web 服务器控件 这些控件比 HTML 服务器控件具有更多内置功能。Web 服务器控件不仅包括窗体控件(例如按钮和文本框),而且还包括特殊用途的控件(例如日历、菜单和树视图控件)。Web 服务器控件与 HTML 服务器控件相比更为抽象,因为其对象模型不一定反映 HTML 语法。
*

验证控件 包含逻辑以允许对用户在输入控件(例如 TextBox 控件)中输入的内容进行验证的控件。验证控件可用于对必填字段进行检查,对照字符的特定值或模式进行测试,验证某个值是否在限定范围之内,等等。有关更多信息,请参见验证 ASP.NET 控件。
*

用户控件 作为 ASP.NET 网页创建的控件。ASP.NET 用户控件可以嵌入到其他 ASP.NET 网页中,这是一种创建工具栏和其他可重用元素的捷径。有关更多信息,请参见 ASP.NET 用户控件。
Note注意

您还可以创建用于移动设备的输出。为此,可使用同一个 ASP.NET 页框架(但要创建的是移动 ASP.NET 网页而不是 ASP.NET 网页),并使用专门为移动设备设计的控件。有关详细信息,请参见创建 ASP.NET 移动网页。

在相同的页上可以使用所有类型的控件。以下各节提供了有关 ASP.NET 服务器控件的更多详细信息。
Note注意

在某些情况下,服务器控件需要客户端脚本才能正常工作。如果用户在浏览器中禁用脚本功能,则控件可能无法按预定方式工作。有关详细信息,请参见 ASP.NET Web 服务器控件和浏览器功能。
HTML 服务器控件

HTML 服务器控件属于 HTML 元素(或采用其他支持的标记的元素,例如 XHTML),它包含多种属性,使其可以在服务器代码中进行编程。默认情况下,服务器上无法使用 ASP.NET 网页中的 HTML 元素。这些元素将被视为不透明文本并传递给浏览器。但是,通过将 HTML 元素转换为 HTML 服务器控件,可将其公开为可在服务器上编程的元素。

HTML 服务器控件的对象模型紧密映射到相应元素的对象模型。例如,HTML 属性在 HTML 服务器控件中作为属性公开。

页中的任何 HTML 元素都可以通过添加属性 runat="server" 来转换为 HTML 服务器控件。在分析过程中,ASP.NET 页框架将创建包含 runat="server" 属性的所有元素的实例。若要在代码中以成员的形式引用该控件,则还应为该控件分配 id 属性。

页框架为页中最常动态使用的 HTML 元素提供了预定义的 HTML 服务器控件:form 元素、input 元素(文本框、复选框、“提交”按钮)、select 元素,等等。这些预定义的 HTML 服务器控件具有一般控件的基本属性,此外每个控件通常提供自己的属性集和自己的事件。

HTML 服务器控件提供以下功能:

*

可在服务器上使用熟悉的面向对象的技术对其进行编程的对象模型。每个服务器控件都公开一些属性 (Property),您可以使用这些属性 (Property) 在服务器代码中以编程方式来操作该控件的标记属性 (Attribute)。
*

提供一组事件,您可以为其编写事件处理程序,方法与在基于客户端的窗体中大致相同,所不同的是事件处理是在服务器代码中完成的。
*

在客户端脚本中处理事件的能力。
*

自动维护控件状态。在页到服务器的往返行程中,将自动对用户在 HTML 服务器控件中输入的值进行维护并发送回浏览器。
*

与 ASP.NET 验证控件进行交互,因此您可以验证用户是否已在控件中输入了适当的信息。
*

数据绑定到一个或多个控件属性。
*

支持样式(如果在支持级联样式表的浏览器中显示 ASP.NET 网页)。
*

直接可用的自定义属性。您可以向 HTML 服务器控件添加所需的任何属性,页框架将呈现这些属性而不会更改其任何功能。这允许您向控件添加浏览器特定属性。

有关如何将 HTML 元素转换为 HTML 服务器控件的详细信息,请参见如何:使用 ASP.NET 语法向网页添加 HTML 服务器控件。
Web 服务器控件

Web 服务器控件是设计侧重点不同的另一组控件。它们不必一对一地映射到 HTML 服务器控件,而是定义为抽象控件,在抽象控件中,控件所呈现的实际标记与编程所使用的模型可能截然不同。例如,RadioButtonList Web 服务器控件可以在表中呈现,也可以作为带有其他标记的内联文本呈现。

Web 服务器控件包括传统的窗体控件,例如按钮、文本框和表等复杂控件。它们还包括提供常用窗体功能(例如在网格中显示数据、选择日期、显示菜单等)的控件。

除了提供 HTML 服务器控件的上述所有功能(不包括与元素的一对一映射)外,Web 服务器控件还提供以下附加功能:

*

功能丰富的对象模型,该模型具有类型安全编程功能。
*

自动浏览器检测。控件可以检测浏览器的功能并呈现适当的标记。
*

对于某些控件,可以使用 Templates 定义自己的控件布局。
*

对于某些控件,可以指定控件的事件是立即发送到服务器,还是先缓存然后在提交该页时引发。
*

支持主题,您可以使用主题为站点中的控件定义一致的外观。有关详细信息,请参见 ASP.NET 主题和外观。
*

可将事件从嵌套控件(例如表中的按钮)传递到容器控件。

控件使用类似如下的语法:
复制代码

<asp:button attributes runat="server" id="Button1" />

本例中的属性不是 HTML 元素的属性。相反,它们是 Web 控件的属性。

在运行 ASP.NET 网页时,Web 服务器控件使用适当的标记在页中呈现,这通常不仅取决于浏览器类型,还与对该控件所做的设置有关。例如,TextBox 控件可能呈现为 input 标记,也可能呈现为 textarea 标记,具体取决于其属性。
effun 2008-11-26
  • 打赏
  • 举报
回复
很简单两个字,效率!
连续N个不带runat=server的Tag会被解析为一个Literal控件,例如以下代码:
<table>
<tr><td></td><td></td></tr></tr>
<tr><td></td><td></td></tr></tr>
</table>
如果全部不带runat=server,那么它们在生成的时候就会被当作一段文放在1个Literal控件中,如果全部带上runat=server,就会变成8个Html控件,那么相应占用的内存资源和处理时所要消耗的CPU资源自然会更多,效率自然会低咯。
luckyyeung 2008-11-26
  • 打赏
  • 举报
回复
需要后台处理的按钮就给它加上runat='server',不需要的话,最好就别加
mengxj85 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 youbl 的回复:]
都用服务器控件会带来最坏的后果是什么?
加重服务器的负担,因为每个控件都要服务器去分析处理,所以不该用的地方就别用了
比如就显示几个文字,你也用一个 <asp:Label runat="server" id="l1" Text="固定的文字"> </asp:Label>

HTML标签在加上runat="server"和标准的服务器标签的区别在哪里?
区别主要在属性有所不同,Web服务器控件号称可以自适应浏览器(我没有试过)
其它性能什么的没啥不同

服务器标签和客…
[/Quote]
zhnzzy 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 viena 的回复:]
如果是流量巨大的网站,就尽量不用服务器控件
如果是软件,或网站的管理后台,用服务器控件还是比较方便
[/Quote]
同意,一般做做软件,我没有区分太多,基本还是用服务器控件
oec2003 2008-11-25
  • 打赏
  • 举报
回复
文本框比较习惯html控件加runat=server

按钮 如果要执行后台代码 就用服务器的

还是要具体情况具体选择
viena 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wengyuli 的回复:]
引用 8 楼 viena 的回复:
如果是流量巨大的网站,就尽量不用服务器控件
如果是软件,或网站的管理后台,用服务器控件还是比较方便


其实到前台都是一样的
[/Quote]
晕,到前台当然都是一样,这地球人都知道
关键是它是怎么到前台的,占服务器资源能一样吗?
Teng_s2000 2008-11-25
  • 打赏
  • 举报
回复
唉,看需求了
如果都是后台代码,你用一椎的HTML控件还行吗?
加载更多回复(12)

62,041

社区成员

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

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

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

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