关于ASP.NET中使用服务器控件影响效率的问题
2012-08-28 12:10
579 查看
用过ASP.NET开发的人会知道,每一个服务器控件在服务器端创建相应的对象,都是以牺牲服务器端的资源为代价的,过多的使用服务器控件会极大的影响程序的性能。但是服务器控件所带来的方便和功能是html控件所不能比拟的。
服务器控件的状态视图属性能够自动的在页面往返过程中维护服务器控件的状态,减少开发者的工作量,但是需要占用大量的服务器内存资源。因此,在不需要服务器控件状态视图的情况下,应将其EnableViewState属性设置为false。
Page.IsPostBack用于记录页面是否从客户端返回,若为false表示初次运行,否则表示从客户端再次返回该页面。Page.IsPostBack的合理应用可以避免页面在往返过程中的一些不必要的操作。在Page_Load函数及一些只需要初始化一次的事件函数中均可以使用该属性来提高应用程序性能。
DataGrid控件带有最强大的数据显示功能,还内置了对数据的修改、删除、添加、分页等很多功能。如果只需简单的显示数据, DataGrid并非最佳选择。DataGrid控件的分页功能,数据的存储方式(存储在viewstate中)等,虽然让程序开发者使用方便快捷,但由此产生的性能开销不容小视。
DataList控件比DataGrid功能少了很多。但自定义性强了很多。特有的多行数据显示还是比较方便的。DataGrid能实现的功能,它基本能实现。
Repeater控件功能最少,但自定义性非常强。由于减少了很多功能,对服务器的性能带来消耗最小。
因此,在只需简单显示数据列表时,选择Repeater或DataList控件同样可以达到目的,而且减轻了性能上的开销。那么如何最不影响性能?你可以直接使用汇编写,通过中断操作网卡,然后提取HTTP信息,那样最少影响,但显然不是你所想要做的。ASP.NET中就应该用控件,而且在ASP.NET引擎设计时就为控件作了相当的优化,当然如果你使用方式不正确,那才可能使真正影响效率的根源。
服务器控件的状态视图属性能够自动的在页面往返过程中维护服务器控件的状态,减少开发者的工作量,但是需要占用大量的服务器内存资源。因此,在不需要服务器控件状态视图的情况下,应将其EnableViewState属性设置为false。
Page.IsPostBack用于记录页面是否从客户端返回,若为false表示初次运行,否则表示从客户端再次返回该页面。Page.IsPostBack的合理应用可以避免页面在往返过程中的一些不必要的操作。在Page_Load函数及一些只需要初始化一次的事件函数中均可以使用该属性来提高应用程序性能。
DataGrid控件带有最强大的数据显示功能,还内置了对数据的修改、删除、添加、分页等很多功能。如果只需简单的显示数据, DataGrid并非最佳选择。DataGrid控件的分页功能,数据的存储方式(存储在viewstate中)等,虽然让程序开发者使用方便快捷,但由此产生的性能开销不容小视。
DataList控件比DataGrid功能少了很多。但自定义性强了很多。特有的多行数据显示还是比较方便的。DataGrid能实现的功能,它基本能实现。
Repeater控件功能最少,但自定义性非常强。由于减少了很多功能,对服务器的性能带来消耗最小。
因此,在只需简单显示数据列表时,选择Repeater或DataList控件同样可以达到目的,而且减轻了性能上的开销。那么如何最不影响性能?你可以直接使用汇编写,通过中断操作网卡,然后提取HTTP信息,那样最少影响,但显然不是你所想要做的。ASP.NET中就应该用控件,而且在ASP.NET引擎设计时就为控件作了相当的优化,当然如果你使用方式不正确,那才可能使真正影响效率的根源。
相关文章推荐
- asp.net不使用服务器控件上传文件时的无意问题
- 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- asp.net关于WEB端用户重复提交问题。禁用服务器控件按钮问题。
- 求助关于asp.net里使用ocx控件的问题
- atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较
- 关于ASP.net中服务器控件的脚本问题
- asp.net关于WEB端用户重复提交问题。禁用服务器控件按钮问题。
- atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较
- The NOTE of learning ASP.NET [10] 关于.NET整型与浮点型变量使用上的效率和存储问题
- 关于ASP.NET MediaPlayer服务器控件及ie11中silverlight相关问题
- 关于asp.net页面同时使用ajax控件和Freetextbox控件的问题!
- Asp.net下使用RequiredFieldValidator影响别的控件的问题
- asp.net控件,服务器标记的格式不正确问题解决方法
- 实验三 使用ASP.NET常用服务器控件 总结
- ASP.NET 自定义服务器控件的使用
- ASP.NET - 使用 ASP.NET Web 服务器控件(三)
- ASP.NET - 使用 ASP.NET Web 服务器控件(九)
- 如何:使用自定义函数对 ASP.NET 服务器控件进行验证
- 关于Asp.net的FormView控件中,用FindControl方法找不到对应控件问题