避免到服务器的不必要的往返过程

原创 2004年10月25日 00:07:00
虽然您很可能希望尽量多地使用 Web 窗体页框架的那些节省时间和代码的功能,但在某些情况下却不宜使用 ASP.NET 服务器控件和回发事件处理。
通常,只有在检索或存储数据时,您才需要启动到服务器的往返过程。多数数据操作可在这些往返过程间的客户端上进行。例如,从 HTML 窗体验证用户输入经常可在数据提交到服务器之前在客户端进行。通常,如果不需要将信息传递到服务器以将其存储在数据库中,那么您不应该编写导致往返过程的代码。

  如果您开发自定义服务器控件,请考虑让它们为支持 ECMAScript 的浏览器呈现客户端代码。通过以这种方式使用服务器控件,您可以显著地减少信息被不必要的发送到 Web 服务器的次数。

使用 Page.IsPostBack 避免对往返过程执行不必要的处理

如果您编写处理服务器控件回发处理的代码,有时可能需要在首次请求页时执行其他代码,而不是当用户发送包含在该页中的 HTML 窗体时执行的代码。根据该页是否是响应服务器控件事件生成的,使用 Page.IsPostBack 属性有条件地执行代码。例如,下面的代码演示如何创建数据库连接和命令,该命令在首次请求该页时将数据绑定到 DataGrid 服务器控件。
[Visual Basic]
Sub Page_Load(sender As Object, e As EventArgs)
' Set up a connection and command here.
If Not (Page.IsPostBack)
Dim query As String = "select * from Authors where FirstName like '%JUSTIN%'"
myCommand.Fill(ds, "Authors")
myDataGrid.DataBind()
End If
End Sub

[C#]
void Page_Load(Object sender, EventArgs e) {
// Set up a connection and command here.
if (!Page.IsPostBack) {
String query = "select * from Authors where FirstName like '%JUSTIN%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
}

  由于每次请求时都执行 Page_Load 事件,上述代码检查 IsPostBack 属性是否设置为 false。如果是,则执行代码。如果该属性设置为 true,则不执行代码。

  注意 如果不运行这种检查,回发页的行为将不更改。Page_Load 事件的代码在执行服务器控件事件之前执行,但只有服务器控件事件的结果才可能在输出页上呈现。如果不运行该检查,仍将为 Page_Load 事件和该页上的任何服务器控件事件执行处理。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Effective Java学习笔记: 第59条 避免不必要地使用受检的异常

受检异常强迫程序员处理异常条件。 过分使用受检异常会是API使用起来非常不方便。 受检异常的使用场景: 如果正确地使用API并不能阻止这种异常条件的产生;并且一旦产生异常,使用API的程序员可以立即...
  • WLFIGHTER
  • WLFIGHTER
  • 2016年09月17日 17:29
  • 243

2015070407 - EffactiveJava笔记 - 第59条 避免不必要地使用受检异常

20150704 星期六 北京     使用异常可以增加可靠性,但是过分使用异常就会导致问题不断.    (异常的设计原则是在不正常的的情况下处理,如果可以把不正常的情况改变为正常思路下的部分,那...
  • zhtzyh2012
  • zhtzyh2012
  • 2015年07月04日 13:27
  • 221

高效Java05:避免创建不必要的对象

就像我们大部分人所知道的,最好能重用对象,而不是每次都重复创建一个功能相同的新对象,下面举几个例子说明这个点。重用不可变对象如果对象是不可变的,那么它就始终可以被重用。对于同时提供了静态工厂方法和构造...
  • digvwell
  • digvwell
  • 2017年03月20日 23:03
  • 154

循环体内包含了大量没有必要在循环中处理的语句或获取数据库连接或进行不必要的try-catch操作

错误案例 public class CheckCycle { public void cycleInfo() { String[] Str = null; ...
  • Rubenyu
  • Rubenyu
  • 2011年07月11日 08:48
  • 553

关闭centos不必要的服务器,提高效率

服務名稱     建議     說明 acpid     停用     Advanced Configuration and Power Interface 電源進階設定,常用在 Laptop 上 ...
  • pengyouchuan
  • pengyouchuan
  • 2011年04月14日 23:13
  • 2479

代码走查工具篇FxCop的规则总结与翻译_Part3

续接上篇:代码走查工具篇FxCop的规则总结与翻译_Part2 Performancerules(性能规则) 1、AvoidExcessiveLocals   CA1809      避...
  • lu_yongchao
  • lu_yongchao
  • 2013年04月05日 21:33
  • 2403

及时与同舟共济的股东分享重要信息,将会避免不必要的曝光。

一个男人在他妻子洗完澡后准备进浴室洗澡。这时,门铃响了。妻子迅速用浴巾裹住自己冲到门口。当她打开门时,邻居鲍勃站在那儿。在她开口前,鲍勃说,“你如果把浴巾拿掉,我给你800美元。”想了一会儿,这个女人...
  • wangzhe992611
  • wangzhe992611
  • 2014年03月28日 11:50
  • 290

避免不必要的float

float中文翻译为浮动,很形象的翻译,在CSS很常用,当你需要吧两个块级元素定排放在同一高度上经常会用到float,先看一下float的 属性。 先看一下float可能的值: float:lef...
  • zn19901023aa
  • zn19901023aa
  • 2014年08月13日 17:25
  • 186

避免创建不必要的对象。

博文中的内容来源《Effective Java Second Edition》这一本书,感激不尽。
  • en_joker
  • en_joker
  • 2017年08月17日 20:38
  • 83

避免不必要的JSP重新编译

关于JavaServer页面(JSP)新闻组的最常见的一个问题与重新编译有关。不想重新编译JSP,却又不得不这样做,这是许多开发人员所面对的烦恼。本文将描述造成重新编译的场景,并从解释WebLogic...
  • jxcjxinxing
  • jxcjxinxing
  • 2007年11月30日 14:35
  • 840
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:避免到服务器的不必要的往返过程
举报原因:
原因补充:

(最多只允许输入30个字)