我想知道服务器控件和HTML控件之间的速度有什么区别吗? 例如,您想要创建一个具有两个文本框和一个用于提交数据的按钮的登录页面,您可以使用服务器控件和HTML控件(client_side控件(输入))执行此操作,是否更喜欢使用服务器控件或HTML控件哪一个更有效率? 哪一个更快?
答案 0 :(得分:3)
您总是希望在服务器端进行验证,从客户端信任任何内容都是一个大错误
答案 1 :(得分:1)
必须在服务器上执行服务器控件,并调用Render方法来生成HTML。因此,它们在服务器上花费了一点点性能。根据控件的不同,它们也会在ViewState中发出数据,这会花费一点额外的带宽(或者很大程度上取决于控件)。
这取决于您要使用的控件类型。一旦涉及任何服务器端处理(读取文本框,处理按钮等),我总是更喜欢asp.net服务器控件,因为它们提供了更多功能。但是如果控件刚刚发送到客户端(例如图像,表格,div等),我使用HTML控件。
我认为服务器端处理不需要太多,从数据库获取数据需要更长的时间。当然,这取决于用户的数量,是否必须优化。但我宁愿使用OutputCache而不是使用asp.net服务器控件。
希望这有帮助。
答案 2 :(得分:1)
服务器控制的主要优点是它将控件包装为.Net对象。它为您提供了从后面的代码访问您的控件及其属性的媒介。
通常无法在客户端访问HTML控件。但是,您可以通过添加runat =“server”属性使其可用于代码。
假设您想要从代码访问控件,您可以选择其中任何一个。
现在,如果你真的想看看asp.net控件(我猜这是你所谓的服务器控件)和html控件之间的区别,那么WebControl和HTMLControl(asp.net的父母)之间的区别和HTML控件)。你基本上得到两套不同的包装器。 ASP.Net控件有很多自定义功能,控件集比HTML控件列表长。
如果我们假设您想要做一些基本的东西并且不需要从代码访问控件,最好的是HTML控件,因为它可以节省服务器端的渲染工作。
此处还有一个问题是,如果您想利用服务器端资源(例如存储在服务器端的图像),则无法通过简单的方式访问它。回发可能会失去路径。它期望使用runat =“server”进行控制。它再次是您的选择,html或asp.net控件!!!
答案 3 :(得分:0)
服务器控件是简单的html或html控件的组合,能够将数据发布到服务器。
我更喜欢简单登录屏幕的服务器端控件,并进行初步的客户端验证。
控制的效率取决于它对服务器的往返次数以及它正在执行的javascript逻辑的数量。