ASP.NET开发性能优化

1. 如没必要,尽量使用静态HTML页面。

    动态页面必须先由服务器执行处理或查询数据库后,生成HTML页面,然后再“送”往客户端浏览,这就不得不耗费一定的服务器资源,如果在并发较大的网站过多使用这类程序,则网页显示速度肯定会慢。

    其实效率最高、消耗最小的还是纯静态化的HTML页面;除门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能地静态化也是提高性能的必要手段。同时,HTML静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用HTML静态化来实现,这样避免了大量的数据库访问请求。

2. 避免不必要的回送操作。

    Page_Load和IsPostBack避免到服务器的不必要的往返过程。使用Page.IsPostBank避免对往返过程执行不必要的处理。

3. 尽量在客户端进行用户输入验证。

    有时候开发页面喜欢在C#代码中验证用户输入是否合法,但由于是服务器代码,需要回送到服务器处理,会大大影响系统性能,最好采用客户端(如JS的方式)的方式验证。

4. 关闭不必要的Session状态。

    Session保存在服务器端,主要和客户授权相关;如果提供了Session状态,则每次调用页面时,都会首先查询Session状态,这必然会影响页面执行的性能。因此,如果你提供的只是普通页面,和客户授权无关,则应该关闭Session状态。

5. 优先使用HTML控件,而非服务器控件。

    ASP.NET中提供了2种控件:Server Control和标准的HTML控件。HTML控件只响应客户端事件,而Server Control提供了runat="server"属性,服务器控件带来的方便和功能上的实现是HTML控件所不能比拟的。但这是以牺牲服务器端的资源为代价的。因此在设计页面时,应根据实际情况选择控件。如果只需响应客户端事件,那么最好选择HTML控件,这会大大提高ASP.NET的性能。

6. 不必要时关闭ViewState。

    使用ViewState,每个对象都必须先序列化到ViewState中,然后再通过回传进行反序列化,因此使用ViewState是有代价的。尽量减少使用对象,如果可能,尽量减少放入ViewState中的对象的数目。

    但ViewState作用的范围只限于页面。对于相同用户相同页面,控件的ViewState是相同的。由于控件可能会用到不同的页面中,因此服务器控件通过ViewState来记录不同的数据状态。但并非所有的服务器控件都需要ViewState。例如一个DataGrid控件,如果我们只是将DataSet填充到该控件中,并不对其中的数据进行操作,那么就不需要设置ViewState。由于ASP.NET中是将服务器控件的ViewState默认设置为true,因此我们需要对控件进行重新设置:

    <asp:DataGrid ID="dg" EnableViewState="false" runat="server"/>

    如果要禁止页面所有服务器控件的ViewState,则使用页面声明:

    <%@ Page EnableViewState="false" %>

    EnableViewState指示是否在页请求之间保持视图状态。

7. 禁用调试模式。

    在部署生成应用程序之前,始终记住禁用调试模式。如果启用了调试模式,则应用程序的性能可能受到非常大的影响。禁用调试模式只需在Web.config中做如下配置:

    <system.web>

        <compilation debug="false">

    </system.web>

转载于:https://www.cnblogs.com/wemzhugo/p/3346007.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值