• MVC神韵你想在哪解脱!(三)


    在我们操刀实战之前,一定要先考虑一下性能问题。这个问题决定你做的有没有价值!

    增加asp.net应用程序性能:

     1. 禁用session

        假如您用不到session会话跟踪请务必禁用它。您可以在每个asp.net页面中设置如下:

    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1"EnableSessionState="false" %>

        当然您可以在web.config应用程序配置设置中设计<sessionState>mode的值为Off.全局的哦!

    2. 输出缓冲设置

        这个方法对你的应用很有帮助. asp.net应用程序基本上在服务器端批量生成数据,这时必须设置Response.Flush清空缓冲区。这样会减轻服务器端的缓冲区压力。

    <%response.buffer=true%> 替换成 <%response.flush=true%>

    3. 避免服务器端验证.

       用客户端验证代替服务器端验证.服务器端数据验证将会大量消耗您的服务器上的资源,并且会带来大量的页面数据回传.

    4. 尽量多使用Repater控件,而不要使用DataList, DataGrid, 和 DataView 控件

        Asp.net是一个非常好的平台,不幸的是,有很多控件会大量生成html代码,这样务必会造成性能上的问题.Asp.net repeater 控件非常好用。使用它你将会额外多写一些代码,但是将来您会发现它带来的好处远比多写代码带来的麻烦。

    5. 在执行大动作操作时请使用 HttpResponse.IsClientConnected 属性,是否客户端还与服务端连接。

         if (Response.IsClientConnected) { Response.Redirect ("Page2CS.aspx",  false); }

    6. 使用HTTPServerUtility.Transfer去替换Response.Redirect.

        Redirect(重定向)非常麻烦,它仅用于从当前物理服务器跳转到其它服务器.如果只是在本服务器内页面跳转请使用transfer(转发),这样会减少很多没有必要的客户端请求.

    7. 当使用服务器端验证时请务必使用Page.IsValid检查页面是否能过验证

        由于您使用了验证控件,你可能认为asp.net会为处理以下的所有事情,是这样吗?错!当有无效数据传到服务器端时IsVlid属性被改为fasle.在继续处理您的表单之前请检查Page.IsValid属性

    8. 部署应用程序请使用Release版本 在部署应用程序时请确定您的应用程序应是Release版本而不是Debug版本.假如您认为这无关仅要,你就错了。如果使用debug模板极容易发生请求超时。部署成Release版本,你将会发现速度有很大的提升.

    9. 关闭 Tracing(追踪)

         Tracing是非常可怕的,你有没有忘记关闭它.假如没用,请确定编辑web.config并且关闭它.它将占用大量您的程序资源 <configuration> <system.web> <trace enabled="false" pageOutput="false" /> <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/> <compilation debug="false" /> </system.web> </configuration>

    10.Page.IsPostBack要经常去使用

         请确定不要执行太多回传代码,我已经记不清有多少开发者忘记使用检查IsPostBack属性.我在平常开发中会经常使用该属性检查.

    11.避免使用异常

         避免抛出异常和处理异常。除非在万不得已情况下使用异常处理。异常是相当的浪费服务器端资源并会大大降低效率.尽量不使用异常处理。

    12.设置缓存(Caching) 使用页面快速设置页Caching和使用ASP.net缓冲API!

         有很多东西要学,这个可不是你想像中那么简单.这个有很多策略要采用.什么时候使用缓冲?你使用缓存了吗?

    13.设置每一次请求缓存

         使用HTTPContect.Items仅要添加一个页面用来设置每一个请求缓存.

    14.StringBuilder类的使用

         StringBuilder.Append 的速要比String + String速度快的多。假如您连接的字符串较上可以不使用,当连接次数大于3次上建议使用StringBuilder.Append方法,当然也可以使用String.Concat

    15.关闭ViewState

         假如你没有使用表单数据回传,那么关闭viewsate。控件回传时自动检验viewstate数据,不仅增加数据流量还会减慢你应用程序速度,无效增肥程序!

    public ShowOrdersTablePage() { this.Init += new EventHandler(Page_Init); }

    private void Page_Init(object sender, System.EventArgs e) { this.EnableViewState = false; }

    16.使用分页

        .net应用程序分页有利于应用程序效率.每次尽量显示小部分数据,这样会加快页面显示速度。请小心使用混合缓存,请不要设置所有数据在缓存区中。

    17.当更新应用程序时使用AppOffline.htm

        我非常讨厌asp.net默认错误消息.假如我再也看不到那些错误消息.确定您的用户也不要看到它.使用AppOffline.htm去替代它。

    18.控件使用ControlState而不使用ViewState

    19.使用finally方法回收资源

        假如你在应用中大量使用数据库连接和访问文件,请确定在用完后关闭它们.finally块是程序中最后被执行,因此在这里面的代码会确宝一定会被执行,关闭代码一定要在这个方法块中执行。

    20.一定要用MVC4+客户端Js框架:JQuery

        基本解决了WebForm的性能问题,当然还有些性能问题正在解决!期待~~

  • 相关阅读:
    [转]如何选购塑料水杯(塑料口杯、茶杯)
    【转】在sqlserver下增加MYSQL的链接服务器,实现分布式数据库开发第一步
    MySql: 查看当前登录用户,当前数据库
    python import, from xx import yy
    python class metaclass instance
    git: fatal: Not a git repository (or any of the parent directories): .git
    Python flask 基于 Flask 提供 RESTful Web 服务
    Python flask @app.route
    MySql: log 位置
    MySql: 忘记root密码
  • 原文地址:https://www.cnblogs.com/sonykings/p/3092886.html
Copyright © 2020-2023  润新知