• ASP.NET中的错误处理和程序优化


    错误的类型
     A。分析程序错误:
      1。语法错误:语法有问题
      2。逻辑错误:除0错误、类型不匹配、不正确输出、使用不正确的对象、处理无效的数据
     B。编译错误:
      使用了不能被语言编译器识别,但ASP.NET能识别的关键字或语句时发生的借误。(生成成功但编译出错)
     C。运行时错误(如if...else...考虑不全)
     D。配置错误:Web.Config文件出错

    错误的处理
     A。使用验证控件
     B。编程处理:
      1。校验语句(使用checked括住要检查的语句)
      2。try...catch...finally
      3。Page_Error
      4。Application_Error
     C。在应用程序配置文件中,为应用程序执行的声明性错误处理(customErrors节点,设定报错页)

    提高数据访问性能

     bool CheckIDExisit(string strFileID,string strID)  //加载XML后判断节点是否存在
     可以改成:
     bool CheckIDExisitByXml(string strXml,string strID) //利用已读出的XML字符串直接查找,不用每次都加载XML文件
     A。逻辑设计建议采用3层。
     B。使用最佳的Data Provider(SqlClient,OracleClient,OleDb,Odbc;在访问MSDE/SQL时始终使用SqlClient;在访问Oracle时绐终使用OracleClient)。
     C。DataReader和DataSet。只读时用DataReader(通常比DataSet快16%)。
     D。ExcuteNonQuery和ExecuteScalar。只更新数据时用ExecuteNonQuery,单个值查询用ExecuteScalar。
     E。数据绑定。把页面中的<%# DataBinder.Eval(Container.DataItem,"ColumnName" %>换成<@% ((DataRowView)Container.DataItem)["ColumnName"] %>
     F。连接池。及时关闭,完成后显式地关闭连接
     G。使用存储过程。有助防止SQL注入攻击;消除应用与数据库反复调用的成本(事务处理)
     
    服务器控件
     A。注意ViewState和控件数量。
     B。如果不使用PostBack功能,请在页面级屏蔽ViewState。
     C。使用<%@ Page Trace="true" %>跟踪ViewState的大小。

    缓存技术
     经常被访问并变化不大的数据(不要缓存新闻、购物车等;不要缓存个人信息,以防止别人盗用)。
     A。输出缓存:配置页的OutPutCache属性
     B。数据缓存:
      Cache["userName"] = "Terry";
      Response.Write(Cache["userName"]); //不能用下标访问,如Cache[0]
      Cache.Remove("userName");
     C。缓存变量的添加
      Cache.Add(...)和Cache.Insert(...)功能相同,但Insert更灵活。
     
    提高性能的实用技巧
     A。不要使用不必要的Session
     B。不要使用不必要的Server Control
     C。不要使用不必要的ViewState
     D。不要用Exception控制程序流程
     E。使用存储过程完成数据访问
     F。只读数据不要使用DataSet
     G。关闭ASP.NET的Debug模式
     H。使用ASP.NET Output Cache缓冲数据
     I。尽量使用高效的SQL返回需要的DataSet,不要对DataSet进行二次加工。特别不要对DataSet过行大量删除(不如复制部分数据)
     J。尽量把查询数据库的次数压缩到最少,尽量控制为1-2次。
     K。注意优化数据库查询操作(查询条件;只查询所需要的字段)
     L。数据库连接仅在需要时打开,一旦操作完成要显式关闭
     M。在关闭连接时记得删除删除临时对象,并确保关闭任何用户定义事务
     N。用DataReader代替DataSet。
     O。注意共享那些经过复杂处理或漫长查询才能得到的数据
     P。在页面跳转时记得终止当前页面的处理
     Q。有大量连接的字符串操作时使用StringBuilder

  • 相关阅读:
    python判断字典中key是否存在
    获取redis中所有的key,清空整个 Redis 服务器的数据
    python redis模块详解
    Windows中redis的下载及安装、设置
    .htaccess
    python介绍
    vi和vim
    其他
    Linux系统相关命令
    Linux用户权限常见命令
  • 原文地址:https://www.cnblogs.com/vipcjob/p/1554493.html
Copyright © 2020-2023  润新知