zoukankan      html  css  js  c++  java
  • 提高ASP.NET Web应用程序性能的一些常规技术建议

    开发高性能的ASP.NET Web应用程序,不仅需要高质量的代码,还需要兼顾其他很多方面的考虑,本文将简要讨论并总结出开发高性能的Web应用的注意事项:

    1、避免到服务器的不必要往返传输。通常来讲,有很多时候我们是不需要将信息传递到服务器端进行处理,当出现这种情况的时候,一点要避免使用导致将信息传递到服务器的代码,这样不仅能提高网页的性能并且还能提高用户体验。总之,能使用客户端控件和Javascript能完成的功能绝对不要用服务器端控件。

    2、记得使用Page对象的IsPostBack属性来避免对往返行程不必要的处理。

    3、只是在必要时候保存服务器控件的视图状态。在默认的情况下,ASP.NET为所有服务器控件启用视图状态。如果服务器控件绑定的是每次数据参数往返行程上的数据,因为控件的值每次都会更新,所有保存视图状态没一点用处,这种情况下应当禁用视图。可以将控件的EnableViewState属性设置为false来禁用控件视图,也可以使用@Page指令禁用整个页面的视图状态。

    代码为:<%@ Page EnableViewState="false"%>

    4、除非有特殊的原因要关闭缓存,否则将缓存保持打开。关于如何在应用程序中选择使用好的缓存策略,是令一个话题,所有的asp.net程序员都应当学会高效使用缓存策略。

    5、在同一个应用程序中的不同asp.net页面之间的重定向,尽量使用Server.Transfer()方法。对与Response.Redirect()方法和Server.Transfer()的各自的优缺点,简单比较:

             1、Response.Redirect可以切换到任何存在的网页。
             2、Server.Transfer只能切换到同目录或者子目录的网页。

             3、302重定向是被搜索引擎反对

             4、Server.Transfer要先把当前页面POST过来的数据保存住,再去执行新的页面,而Response.Redirect只是简单的回复一个重定向的指令就完事。因此如果对这两个方法做测试的话,Server.Transfer方法使用的时间应当是要比Response.Redirect方法使用的时间要多的。

            5、Server.Transfer()可以完成另外一些功能,比如可以在下一个Web Form中访问到前一个Web Form中的server control,例:WebForm1.aspx 有一个文本框名为 TextBox1,你利用 preserveForm 为 True 传递到 WebForm2.aspx,你仍然可以用 Request.Form("TextBox1") 来取得文本框的值。这种技术对向导式的多页面输入很有用。

    http://www.docin.com/players/DocPlayer.swf?category=3&productId=58787306&shareLocationId=9

    6、当使用SQL Server存储数据时,应当尽量使用存储过程访问数据。因此asp.net程序员都应当学会编写高效的存储过程。

    7、在应用程序中如果只是读取访问数据,使用SqlDataReader对象而不是DataSet对象。而且DataSet的DataBind()是一个比较费时的操作。

    8禁用调试模式。因为在调试模式下,Web应用程序的性能将受到比较大的影响,因此,在部署Web应用程序或进行任何性能测试之前,始终禁止调试模式。只在开发过程中开启调试模式。

    9、优化配置文件。应当尽可能的优化Web服务器和Web应用的配置文件来符合自己的需要。在默认的情况下,ASP.NET配置被设置成启用最广泛的功能集并尽量适应最常见的情况。

    10、在编码时,不要以来代码中的异常。不是说不要使用异常,在代码中应当捕捉所有可能发生的异常,但是我们应当尽量让异常不起作用。

    11、使用缓存。对于经常访问的数据可以通过缓存技术来将数据进行缓存,对于页或者控件则可以选择页输出缓存技术来进行缓存,以提高页面的响应速度。

    各位如果还有其他的一些提高ASP.NET Web应用程序性能的小建议也请补充一下哈....一起学习,一起进步....

  • 相关阅读:
    Android入门:DDMS视图
    Android入门:EditText
    Hibernate入门:关联规则之多对一和一对多
    MyEclipse开发Rest服务入门
    Hibernate入门:使用C3P0连接池
    InfoQ:深入浅出REST
    二维码的编码与解码辅助类
    Android系统Resource之Drawable
    Android开发中的点滴
    粒子效果的简单实现
  • 原文地址:https://www.cnblogs.com/hangwq/p/1603871.html
Copyright © 2011-2022 走看看