电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

提搞网站访问速度可做哪些优化


发布日期:2021/4/28
 

服务器优化

l Windows系列

位Winr + HpyerV + 负载均衡 + IIS

位Win + 虚拟机 + 负载均衡 + IIS

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

去掉每个磁盘的所有权限只保留administrators组和system完全控制权限

IIS标识使用ApplicationPoolIdentity给目录权限用户是IIS AppPool\站点名

IIS需要为每个站点建独立的用户为IIS用户单独设置权限

IIS禁止日志记录

数据库优化

l 位MSSQL

少用触发器/游标/外键多用存贮过程和视图适量使用索引查询速度会提高很多每个表的索引尽量不要超过

定时查看死锁的进程和等待进程并清除还要及时修正死锁的来源

复杂的统计报表需要用计划去跑

查询记录数要使用count() 不要使用count(*)

select的时候表字段不要使用**查询所有字段是很慢的

如果字段是索引列可使用UNION ALL 替代 OR走索引线路查询

大记录集要使用分页查询

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

尽量不要使用临时表要使用Table表类型或内嵌视图

后端优化

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

l for (int i = ; i < dtRowsCount; i++) 应该这么写

for (int i = len = dtRowsCount; i < len; i++)或

foreach (DataRow info in dtRows)推荐这种写法

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

l 多使用using如

using (DbDataReader dr = DataGetDbDataReader(strSql)) { while (drRead()) { }; }

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

l 变量要在先定义在使用不要在循环内定义变量

错误的写法是for (int i = ; i < ; i++) { string s = iToString(); }

正确写法string s = stringEmpty; for (int i = ; i < ; i++) { s = iToString(); }

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

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

l 使用foreach替代for

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

l 多使用CACHE对数据缓存这才是最关键的NET提供HttpContextCurrentCache/HttpRuntimeCache共享缓存有velocity/ memcached

l 可使用<%@ OutputCache Duration= 缓存页面可使用ResponseBufferOutput = true;/ <%@ Page Buffer=true 输出缓沖

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

l 可使用URL重写成伪静态提供rss/baidusitemap/googlesitemap服务有利于搜索引擎收录

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

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

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

l nfig 加 <customErrors mode=On /> 关闭错误提示

l nfig 加 <compilation debug=false /> 关闭调试模式

l 使用ServerTransfer替换ResponseRedirect

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

前端优化

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

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

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

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

l 将CSS background背景图片多张合并成一张图片保证合并后的图片大小不要超过K可将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

其它优化

上一篇:套接字编程介绍

下一篇:用户控件包装器的设计与实现