Asp.net mvc 速度优化 -- 关注Yslow(1)

 

说实话,这篇文章和asp.net mvc网站关系并不大,因为这几乎是所有网站的一个通用标准了。而且很惭愧的是,我们的网站 的Yslow评分按照Classic V1的标准也只有D,而且很多方法也是百度, google来的,所以谈不上原创,更多的是方法汇总。但愿能抛砖引玉,让高手也多说说。

前两篇文章 asp.net mvc速度优化 -- 页面缓存 asp.net mvc速度优化 -- memcache主要解决的是后台代码的事情,这篇文章更多从网站配置和前端方面说说。


为什么要关注YSlow?

yslow是YAHOO网页加速的14条优化法则。更多相信可以参考百度文库的介绍Firefox针对这14条法则有一个插件叫Yslow,前提是需要安装Firebug.Firebug和Yslow的安装都是从Firefox的工具->附加组件中安装,具体细节就不再赘述了。具体是哪14条法则呢,看截图:


1.减少HTTP的访问次数,这个是最难的,因为要涉及很多细节,本文会描述。

2.使用CDN, 内容分发网络。这个没做过,小站点和个人网站貌似也做不起,但淘宝对这个很有

研究,可以关注他们的博客

3.增加Expires headers, 设置页面元素(图片,js,css...)的过期时间,设置了之后,客户端会缓存

4. 使用gzip压缩页面元素,这个蛮给力的,一会儿大家看截图就知道了。

5. 把CSS放在顶部,目的是让页面可以顺序加载,不会很乱,另外也避免页面重画,这个不说

了。

6. 把Javascript放在底部,JS是串行加载的(阻塞式),这个也不说了。

当然jquery.js等东东还是放在<head>..</head>之间吧。

7. 避免使用CSS expressions, 这个还是不说了。

8. 把CSS和Javascript放到外部文件中,因为外部文件可以缓存,另外也便于代码维护。

9. 减少DNS的查询次数,这个没做过,天生就是A,可能以后会遇到问题。

10. 最小化 Javascript和CSS代码。

11. 避免URL重定向,原则是就是说不要在页面上存在 http://www.incity.me 和 http://www.incity.me/。

12. 删除重复的Javascript和CSS的脚本,这个是废话,但实际上可能由于粗心会存在这个问题。

13. 配置ETags,这里会介绍IIS如何配置ETags.

14. 其实还有个是缓存AJAX.


减少Http访问次数

总的来说,就是减少javascript,css,image的数量,尽量整合,只是需要在代码维护和性能之间做好平衡。

1.合并Javascript文件。对于小型或者中型站点,以使用jquery为例,我觉得就应该只要三个js文件:jquery.js, jquery.extension.js, yourproject.js. 其中jquery.js代表你的js版本, jquery.extension.js是把其他所有使用jquery扩展的放到一个文件,jquery.ui.js + jquery.calander.js + jquery.xxx.js => jquery.extension.js, 而project.js则只包含你项目的js.

<head>

<script src="jquery.js"  />

<script src="jquery.extension.js" />

<script src="yourproject.js" />

</head>


2.合并CSS文件,最好不要超过两个,一般中小型站点就一个site.css即可。

3.使用CSS Sprite将多张小图片(特指样式图片)整合到一张大图片里面,这里介绍一个自动生成CSS Sprite的网站, 这点很重要,因为图片往往是耗时最多的。


增加Expires headers

IIS 管理器->HTTP 响应标头->设置常用标头,但这个指标的评分貌似不是很稳定,还在研究中。。。


使用Gzip进行压缩

首先观察下使用Gzip前后的对比:







如何配置?

IIS 管理器 -> 压缩 (需要注意的是,不要对图片进行Gzip压缩,因为Gzip压缩算法本身也要耗费服务器的时间)




配置ETag

其实这里是Disable Etag,

1.下载一个Remtag.dll.

2.IIS管理器 -> ISAPI筛选器,配置好后,重启IIS就看到效果了。



你可能感兴趣的:(asp.net)