页面和服务器控件处理

下列准则提供了有效使用 ASP.NET 页面和控件的建议。

  • 避免到服务器的不必要的往返行程 在某些情况下不必使用 ASP.NET 服务器控件和执行回发事件处理。例如,在 ASP.NET 网页中验证用户输入经常可在数据提交到服务器之前在客户端进行。通常,如果不需要将信息传递到服务器以进行验证或将其写入数据存储区,请避免使用导致到服务器的往返行程的代码,这样可以提高页的性能并改善用户体验。您也可以不执行整个往返行程,而是使用客户端回调从服务器中读取数据。如果您开发自定义服务器控件,请考虑让它们为支持 ECMAScript (JavaScript) 的浏览器呈现客户端代码。通过以这种方式使用服务器控件,您可以显著地减少信息被发送到 Web 服务器的次数。

  • 使用 Page 对象的 IsPostBack 属性来避免对往返行程执行不必要的处理 如果您编写处理服务器控件回发处理的代码,有时可能需要代码仅在首次请求页时执行,而不是每次回发时都执行。根据该页是否是响应服务器控件事件生成的,使用 属性有条件地执行代码。
  • 只在必要时保存服务器控件视图状态 自动视图状态管理使服务器控件可以在往返行程中重新填充它们的属性值,而您不需要编写任何代码。但是,因为服务器控件的视图状态在隐藏的窗体字段中往返于服务器,所以该功能影响性能。了解在哪些情况下视图状态会有所帮助,在哪些情况下它影响页的性能,这样是有帮助的。例如,如果您将服务器控件绑定到每个往返行程上的数据,因为控件的值会在数据绑定期间用新值替换,所以保存的视图状态没有用处。在这种情况下,禁用视图状态可以节省处理时间并减少页的大小。

    默认情况下,为所有服务器控件启用视图状态。若要禁用它,请将控件的 属性设置为 false,如下面的 服务器控件示例所示:

     
    <asp:datagrid EnableViewState="false" datasource="..."    runat="server"/>

    您还可以使用 指令禁用整个页的视图状态。当您不从页回发到服务器时,这将十分有用:

     
    <%@ Page EnableViewState="false" %>
    注意:

    指令中还支持 属性以指定是否为用户控件启用视图状态。

    若要分析服务器控件在页中使用的视图状态的大小,请通过将 trace="true" 属性包含在 @ Page 指令中启用对该页的跟踪。然后在跟踪输出中,查看“控件层次结构”表的“Viewstate”列。有关跟踪和如何启用它的信息,请参见 。

  • 除非有特殊的原因要关闭缓冲,否则使其保持打开状态 禁用 ASP.NET 网页的缓冲会导致大量的性能开销。有关更多信息,请参见 属性。

  • 使用 对象或跨页发送的方法在同一个应用程序中的不同 ASP.NET 页之间重定向

开发高性能的 ASP.NET 应用程序相关推荐

  1. 开发安全的ASP.NET应用程序

    Web应用程序会遭到几种类型的攻击,其破坏效果会因程序本身的不同而不同.因此,安全性是与程序的用法和用户与其功能交互的方式密切相关的.那么,应该如何来设计和编码ASP.NET应用程序呢? 从应用程序的 ...

  2. 使用 Apache MINA 开发高性能网络应用程序

    http://www.ibm.com/developerworks/cn/opensource/os-cn-apmina/ Apache MINA(Multipurpose Infrastructur ...

  3. 【转】新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序(续1)

    上周星期天开通了博客并发布了第一篇文章<新思想.新技术.新架构--更好更快的开发现代ASP.NET应用程序>,汇集了一些比较流行的技术和开源项目,也把自己的程序架构.部分代码风格.前端表现 ...

  4. 并发型服务器响应方式,基于Java NIO 开发高性能并发型服务器程序的研究

    基于Java NIO 开发高性能并发型服务器程序的研究 第8卷%第5期 软件导刊 2009年5月SoftwareGuide Vol.8No.5May.2009 基于JavaNIO开发高性能并发型服务器 ...

  5. ASP.NET 应用程序生命周期概述

    本主题概述应用程序生命周期,列出重要的生命周期事件,并描述如何编写适合应用程序生命周期的代码.在 ASP.NET 中,若要对 ASP.NET 应用程序进行初始化并使它处理请求,必须执行一些处理步骤.此 ...

  6. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](三)

    前言 上一篇<一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)>我们通过如下操作: 创建实体及工具类 创建Re ...

  7. IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期

    本文内容 应用程序生命周期概述 生命周期事件和 Global.asax 文件 编译生命周期 HTTP 模块 本文概述 VS 2008 ASP.NET 应用程序的生命周期,列出了重要的生命周期事件,并描 ...

  8. IIS 7.0的ASP.NET应用程序生命周期概述

    小结于:http://msdn.microsoft.com/zh-cn/library/bb470252(v=vs.100).aspx IIS 7.0的ASP.NET应用程序生命周期概述 (一)结构概 ...

  9. 使用ASP.NET Abstractions增强ASP.NET应用程序的可测试性

    概述 在阅读本文之前,兄弟们请先注意两点: 我们现在谈的是传统ASP.NET应用程序的可测试性,而不是ASP.NET MVC应用程序的可测试性. 我们现在谈的是"增强",而不是说传 ...

最新文章

  1. python中如何删除字典中的元素_python中字典删除元素
  2. IAAS: IT公司去IOE-Alibaba系统构架解读
  3. 微信JSSDK分享页面自定义当前链接最简单示例
  4. LeetCode MySQL 601. 体育馆的人流量(row_number+over+cast)
  5. Java并发包基石-AQS详解
  6. centos安装mysql8.0.13_CentOS 7.4安装MySql 8.0.13及配置
  7. 【转】【最小树形图】有向图的最小生成树【朱刘算法】
  8. VC2005用不惯呀....
  9. 杰出的橙色网站设计案例
  10. git管理账户忘记了_gitlab管理员账号密码重置
  11. c++工程师历年企业笔试真题汇总
  12. Nacos下载与安装
  13. IP地址,IPV4与IPV6
  14. 夜读 | 比管理时间更重要的,是管理精力
  15. 如何迅速练好英语口语?
  16. 计算机一级期末考试题,2016年计算机一级考试题库(含答案)
  17. arduino学习笔记二十二--模拟交通信号灯
  18. python输入姓名_在Python中解析人的名字和姓氏
  19. JAVA设计模式什么鬼(备忘录)——作者:凸凹里歐
  20. 掌握Quick Basic编程的,都是OS操作系统自编程的精英人才

热门文章

  1. 马斯克怒删特斯拉和SpaceX脸书主页!硅谷二马恩怨再升级
  2. [Android]Eclipse连不上模拟器的问题[emulator-5554 disconnected]
  3. NodeJs——(14)express框架的send()方法简介
  4. 关闭window 8.1 的skydrive
  5. 纠结也好,蛋疼也罢,既然创业了,就把路走好。
  6. 一些常用的JavaScript总结
  7. Cisco 3550配置DHCP实例
  8. Linux下双网卡绑定技术实现负载均衡和失效保护 bond
  9. jenkins ssh 部署 Can't connect to server 错误
  10. zabbix数据库分表的实现