客服端控件与服务器控件的区别

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

什么时候用html控件,什么时候用"标准控件"?

能不用服务器端控件尽量不用

能用html控件就不要用web控件

服务器端控件效率低

前两句同意,至于后一句,

效率上,纯 html 肯定比 runat=server 低,

对于 runat=server ,事实上 内部帮我们作了许许多多的工作,比如

在 asp/php/jsp 中需要

来维护两次post之间的状态而

帮我们做了这项工作,其内部也是使用Request.Form 类获取值,然后经过一系列的处理周期(基于事件驱动)

在一个页面上,前者,只是一个字符流的输出,后者涉及对象的创建,控件层次的维护,大量相关页、控件事件同步,ViewState维护

比如必然导致额外的性能损耗,

但,它带来的是,【开发效率成倍的提升,完整的组件编程模式....】

你不必再一堆的 Request.Form 中绕,你可以引用服务器控件对应,统一的编程模型

1. string txt = Requst.Form["MyTextBoxClientName"]; VS

string txt2 = MyTextBoxServerID.Text;

2.

// js

document.form1.action = "?action=delete"

// aspx.cs

if(Requst.QueryString["action"] == "Delete") {

// 执行删除操作 ...

}

VS

// aspx

// aspx.cs

void DeleteButton_Click( ...

{

// 执行删除

}

-------------------------------------------------------------------------------

那么,如何选择?

A.

对于简单控件,如 TextBox CheckBox DropDownList .... 等等与 html form 表单元素直接对应的,假如我们系统维护多次提交之间他们的状态,未尝不可使用之,

至于效率,通常是可以忽略的,另外,你还处于 Win32 前时代迈?

B.

对于 GridView/DataGrid/ ... 这样的控件,以以及TreeView Menu ...,前者实际上帮我们完成了 asp 中while '遍历 RecordSet

Response.Write("...") '

这么一项工作,同时提供前述的完整的事件模型,便于我们服务器端编程操作【他们最大的诟病就是,假如你启用(默

认启用)【ViewState】来维护状态,那么你一次绑定显示的数据多,页面的大小会成倍的增长】但是,同时,你也注意到,假如我通过 ViewState 来维护状态了,虽然页面变大了,但是多次提交之间,我不必从数据库再加载这些数据了,因为控件会才自动从 ViewState 中自动恢复ViewState 是通过存储在一个隐藏域来实现的,html input hidden 这是我们在 asp/php/jsp 常用的手段的简单的分析之后,你会发现, 就是一个“框架”,包装了很多东西为我们建立了一个统一的 Web 开发模型,这个模型最重要的就是,事件驱动——将客户端事件映射为服务器事件,进而实现类型 Win App 的开发模式! 有太多的特性,没有办法三言两语说清楚,至于性能,你不能简单的说,用服务器控件,效率就低,控件一般是给非专业人士准备的,就是只会拖动鼠标的那些人,专业开发人员很少用的;高手不见得就不用,runat=server,一个性能优良的应用系统,是需要综合各方面的设计策略的,从ASP迁移的过来的,多数会对 产生疑惑,但是相信,具有传统web开发经验者,能够很快,理解其本质,了解其内在运行机制,

不管如何,他们都离不开最原始的 Requst/Response 这两个对现象!系统性能与开发效率需要一个 tradeoff 的过程,毕竟,我们已经不在3.5英寸盘的时代,2004 年末我加一条256内存的是,240¥,还是现代的现在 512 的多

少 1G 的多少?从应用系统类型看,除了,门户型的信息类网站之外(他们更多使用静态页),简单服务器控件可以放心使用,重量的服务器控件,根据设计策略而定另外,假如基于纯 AJAX ,那看什么框架了,轻量基本的如 AjaxPro,也就没有必要服务器控件了,通过 js + DOM+ dhtml 基本可以完成 UI 绘制了以下转自CSDN 松鼠发言任何编程模型都有常见的性能缺陷, 也不例外。本节描述一些可避免在代码中出现性能瓶颈的方法。在未使用时禁用会话状态:并非所有的应用程序或页都要求基于每个用户的会话状态。如果不需要,可将其完全禁用。这可以通过以下页级别指令轻松实现:<%@ Page EnableSessionState="false" %> 注意:如果页需要访问会话变量但不创建或修改它们,请将指令值设置为 ReadOnly。还可为 XML Web 服务方法禁用会话状态。请参阅 XML Web 服务一节中的使用对象和内部对象。慎重选择会话状态提供程序: 为存储应用程序的会话数据提供了三种不同的方法:进程内会话状态、作为 Windows 服务的进程外会话状态和 SQL 数据库中的进

程外会话状态。每种方法都有自己的优点,但进程内会话状态是迄今为止速度最快的解决方案。如果仅在会话状态中存储少量易失数据,则应使用进程内提供程序。进程外解决方案主要用于 Web 花园和 Web 农场方案,或用于当服务器/进程重新启动时不能丢失数据的情况。避免与服务器间的过

相关文档
最新文档