提升网站的访问速度(提升网站访问性能)

1、服务器优化

视窗系列:

提升网站的访问速度(提升网站访问性能)

64位Win2008r2+Hyperer-V+负载均衡+IIS7.5

64位Win2003+虚拟机+负载均衡+IIS6

禁止服务器访问外网。关闭不必要的端口。

删除每个磁盘的所有权限,只保留管理员组和系统完全控制权限。

IIS7.5标志使用ApplicationPoolIdentity,具有目录权限的用户为:IISAppPool\站点名称

IIS6需要为每个站点创建独立的用户,并为IIS用户单独设置权限。

IIS禁用日志记录。

2.数据库优化

l64位MSSQL2008:

使用更少的触发器/光标/外键。存储过程和视图的多种用途。适当地使用索引将会使查询速度提高很多。每个表上的索引尽量不要超过3个。

定期检查并清除死锁进程和等待进程,及时纠正死锁根源。

复杂的统计报告需要规划才能运行。

要查询记录数,请使用count(0)而不是count(*)。

选择表字段时不要使用*。*查询所有字段非常慢。

如果字段是索引列,可以使用UNIONALL代替OR,通过索引路由查询。

对大型记录集使用分页查询。

尽量不要使用TEXT/NTEXT类型,使用VARCHAR(MAX)/NVARCHAR(MAX)。

尽量不要使用临时表,使用Table表类型或者嵌入视图。

3、后端优化

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

lfor(inti=0;idt.Rows.Count;i++)应该这样写:

for(inti=0,len=dt.Rows.Count;ilen;i++)或

foreach(dt.Rows中的DataRowinfo)推荐这种写法

l尽量少用trycatch,使用trycatch时与finally一起使用。

l经常使用,例如:

使用(DbDataReaderdr=Data.GetDbDataReader(strSql)){while(dr.Read()){};}

l对于大字符串操作请使用StringBuilder。少用字符串。使用Compare进行字符串比较,使用Concat进行字符串相加,使用StringBuilderAppend进行大字符串相加。

l变量在使用前必须先定义。不要在循环内定义变量。喜欢:

错误的写法是:for(inti=1;i10;i++){strings=i.ToString();}

正确写法:strings=string.Empty;for(inti=1;i10;i++){s=i.ToString();}

这里还有一点需要注意的是:在添加字符串时,如果有int类型,在添加之前必须转换为string类型,以减少不必要的装箱和拆箱操作。

l如果使用的是HTML控件,需要禁用%@页面EnableViewState='false'AutoEventWireup='false'EnableSessionState='false',web.config页面enableViewState='false'enableSessionState='false'/

l使用foreach代替for

l使用存储过程/视图来操作数据库。

l使用CACHE来缓存数据。这是最重要的。NET提供:HttpContext.Current.Cache/HttpRuntime.Cache,共享缓存为velocity/memcached

l可以使用%@OutputCacheDuration='60'来缓存页面,也可以使用Response.BufferOutput=true;/%@PageBuffer='true'来输出缓冲区。

l站点可以生成静态页面,这样有很多好处。

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

lAjax调用页面必须使用.ashx通用处理程序,它比.aspx文件速度更快。Ajax请求应使用POST而不是GET。

l发布站点时,DLL必须是Release版本,而不是Debug版本。

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

l在Web.config中添加customErrorsmode='On'/关闭错误提示。

l在Web.config中添加compilationdebug='false'/关闭调试模式。

l使用Server.Transfer代替Response.Redirect

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

4.前端优化

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

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

l学习使用jQuery来提高开发速度。

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

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

lJS代码片段不应该放在HTML页面中,而应该放在独立的JS文件中。优点是JS文件可以CDN/缓存。

l可以将CSS文件放置在head/head之间,将JS文件或代码放置在/body之前,这样页面就会在JS执行之前显示。

l您可以将网站的图片/CSS/JS/数据/资源放到单独的站点中,并使用CDN加速。二级域名会有COOKIES。最好使用一级域名。

lA标签和IMG标签需要添加title/alt,head标签需要添加title/keywords/description/rss/sitemap优化,有利于搜索引擎收录。

l页面可以启用gzip压缩。

l安装FF插件“YSlow/PageSpeed”。

5.其他优化