[转载]Asp.net mvc 速度优化 -- 关注Yslow(1)

[转载]Asp.net mvc 速度优化 — 关注Yslow(1) – enjoyeclipse – 博客园.

说实话,这篇文章和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就看到效果了。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏