众所周知,ASP.NET之所以广受欢迎,其强大的ASP.NET服务器控件是重要原因。在ASP.NET中我们经常会遇到Html标注,Html控件、Web控件和ASP.NET服务器控件等等。不过,每一个ASP.NET服务器控件在服务器端创建相应的对象,都是以牺牲服务器端的资源为代价的,过多的使用ASP.NET服务器控件会极大的影响程序的性能。因此,需要对ASP.NET服务器控件进行相应设置。
ASP.NET服务器控件的状态视图属性能够自动的在页面往返过程中维护ASP.NET服务器控件的状态,减少开发者的工作量,但是需要占用大量的服务器内存资源。因此,在不需要ASP.NET服务器控件状态视图的情况下,应将其EnableViewState属性设置为false。
常用的控件Page.IsPostBack用于记录页面是否从客户端返回,若为false表示初次运行,否则表示从客户端再次返回该页面。Page.IsPostBack的合理应用可以避免页面在往返过程中的一些不必要的操作。在Page_Load函数及一些只需要初始化一次的事件函数中均可以使用该属性来提高应用程序性能,如:
- void Page_Load(Object o, EventArgs e)
- { if(! Page.IsPostBack)
- {conn=new SqlConnection("server=localhost; uid=sa; pwd=; database=data");
- String sql="select * from student";
- cmd.Fill(ds,"stu");
- mydataGrid.DataBind(); }}
DataGrid控件带有最强大的数据显示功能,还内置了对数据的修改、删除、添加、分页等很多功能。如果只需简单的显示数据, DataGrid并非最佳选择。DataGrid控件的分页功能,数据的存储方式(存储在viewstate中)等,虽然让程序开发者使用方便快捷,但由此产生的性能开销不容小视。
DataList控件比DataGrid功能少了很多。但自定义性强了很多。特有的多行数据显示还是比较方便的。DataGrid能实现的功能,它基本能实现。
Repeater控件功能最少,但自定义性非常强。由于减少了很多功能,对服务器的性能带来消耗最小。因此,在只需简单显示数据列表时,选择Repeater或DataList控件同样可以达到目的,而且减轻了性能上的开销。
使用以上ASP.NET服务器控件的技巧,相信会大大提升ASP.NET程序的性能。
【编辑推荐】