zoukankan      html  css  js  c++  java
  • 一些不错的优化

    代码
    数据库优化

    l 64位MSSQL2008:

    少用触发器
    /游标/外键。多用存贮过程和视图。适量使用索引查询速度会提高很多,每个表的索引尽量不要超过3个。 
    定时查看死锁的进程和等待进程,并清除,还要及时修正死锁的来源。 
    复杂的统计报表需要用计划去跑。 
    查询记录数要使用count(
    0) 不要使用count(*)。 
    select的时候表字段不要使用
    **查询所有字段是很慢的。 
    如果字段是索引列可使用UNION ALL 替代 OR,走索引线路查询。 
    大记录集要使用分页查询。 
    尽量不要使用TEXT
    /NTEXT类型,要使用VARCHAR(MAX)/NVARCHAR(MAX)。 
    尽量不要使用临时表,要使用Table表类型或内嵌视图。 

    后端优化

    l 多使用DbDataReader,尽量不要使用DataTable
    /DataSet读取数据。

    for (int i = 0; i < dt.Rows.Count; i++) 应该这么写:

    for (int i = 0, len = dt.Rows.Count; i < len; i++)或

    foreach (DataRow info in dt.Rows)推荐这种写法

    l 少用try 
    catch,用到try catch时要和 finally一起使用。

    l 多使用using如:

    using (DbDataReader dr = Data.GetDbDataReader(strSql)) { while (dr.Read()) { }; }

    l 大字符串操作请使用StringBuilder 少使用string,字符串比较用Compare,字符串相加用Concat,大字符串相加用StringBuilder Append。

    l 变量要在先定义在使用,不要在循环内定义变量。如:

    错误的写法是:
    for (int i = 1; i < 10; i++) { string s = i.ToString(); }

    正确写法:
    string s = string.Empty; for (int i = 1; i < 10; i++) { s = i.ToString(); }

    这里还有一个地方要注意的:在字符串相加的时候,如果有int类型的要先转成string类型在相加,减少不必要的装箱拆箱操作。

    l 如果你使用的是HTML控件,需要禁用
    <%@ Page EnableViewState="false" AutoEventWireup="false" EnableSessionState="false",web.config <pages enableViewState="false" enableSessionState="false" />

    l 使用foreach替代for

    l 操作数据库要使用存贮过程
    /视图。

    l 多使用CACHE对数据缓存。这才是最关键的。NET提供:HttpContext.Current.Cache
    /HttpRuntime.Cache,共享缓存有velocity/ memcached

    l 可使用
    <%@ OutputCache Duration="60" 缓存页面,可使用Response.BufferOutput = true;/ <%@ Page Buffer="true" 输出缓冲。

    l 可将站点生成静态面页,好处多多。

    l 可使用URL重写成伪静态,提供rss
    /baidu-sitemap/google-sitemap服务,有利于搜索引擎收录。

    l Ajax调用页面要使用.ashx一般处理程序,速度要比.aspx文件要快。Ajax请求要使用POST不要使用GET。

    l 发布站点时DLL要Release版本,不要用Debug版本。

    l IIS需要使用集成模式,不要使用经典模式。

    l Web.config 加 
    <customErrors mode="On" /> 关闭错误提示。

    l Web.config 加 
    <compilation debug="false" /> 关闭调试模式。

    l 使用Server.Transfer替换Response.Redirect

    l 多使用泛型集合操作,少用ArrayList。

    前端优化

    l 最好不使用NET控件,用HTML控件,页面使用CSS
    +DIV布局。

    l 使用JSON 
    + AJAX进行数据交互。

    l 要学会使用jQuery提高开发速度。

    l 尽量少用
    <img标记,改用background样式控制背景图片。这样做的好处是方便扩展多皮肤。

    l 将CSS background背景图片多张合并成一张图片,保证合并后的图片大小不要超过50K。可将JS文件合并在一个JS文件中,然后使用closure_packer_yui_compiler进行压缩,这样做的好处是可减少客户端连接数。

    l JS代码段不要放在HTML页面,应该放在独立的JS文件里面,好处是JS文件可以CDN
    /缓存。

    l 可将CSS文件放到
    <head></head>之间,JS文件或代码放到</body>之前,让页面先显示在执行JS。

    l 可将网站的图片
    /CSS/JS/资料/资源放到独立的站点,做下CDN加速,二级域名会有COOKIES,最好使用一级域名。

    l A标记和IMG标记需要加上title
    /alt,<head>标签内需要加title/keywords/description/rss/sitemap优化,有利于搜索引擎收录。

    l 页面可启用gzip压缩。

    l 安装FF的插件“YSlow
    /Page Speed”。
    -------长沙程序员技术交流QQ群:428755207-------
  • 相关阅读:
    BZOJ3543: [ONTAK2010]Garden
    python初识面向对象
    python装饰器
    python递归函数及二分法查找
    python内置函数及匿名函数
    生成器和生成器函数以及各种推导式
    第一类对象 函数名 变量名
    函数的进阶
    Python初始函数
    Python文件操作
  • 原文地址:https://www.cnblogs.com/qq4004229/p/1819277.html
Copyright © 2011-2022 走看看