看文章之前可以先看看这篇文章,或许对你有所帮助。《ASP.NET站点 应该从哪些方面优化》。有很多关于网络服务器性能优化的资料。多主机负载均衡、查询结果多级缓存、数据库索引优化等都是常见的优化手段。随着后端优化的空间越来越小,现在越来越多的网站更加注重前端性能的优化,即浏览器和http层面的优化。下面介绍两种简单有效的asp.net网站优化技巧。要了解常见的网站性能优化技巧,首先我们需要学习一些优化网站性能和体验的理论和基础知识。雅虎已经为我们总结过了。具体可以参考参考链接中的几篇文章。有好心人把它们翻译成了中文。这里提到的一些技术具有很高的可操作性。建议每一位网站开发人员认真学习和实践。可以说,不了解这里所说的优化技术,就无法提高网站的前端性能。诊断网站性能要优化网站的前端性能,首先要查看哪些瓶颈最影响前端性能?最常用的工具是Google的PageSped和Yahoo的YSlow。这两个工具都是在Firefox下使用的,都是基于FireBug的。FireBug是前端开发者必备的插件。这两个工具可以帮助你诊断你的页面的性能瓶颈在哪里,比如打开你的网站首页消耗了多少网络流量,发起了多少次HTTP请求,是否可以缓存每个页面组件,以及每个页面加载。执行过程耗时多少,加载时是否有阻塞,页面组件并行加载情况如何,图片是否可以无损压缩,脚本和样式是否放置合理,是否有不必要的空格已经删除了,是否gzip压缩等等。知道了这些信息,就可以有针对性地优化网站性能,首先优化对性能影响最大的地方。这两个工具使用起来也非常简单。进行优化实践根据我对网站优化的学习和实践,我总结了一些经验:一般的网站性能消耗集中在网络下载上,包括页面本身的HTML以及图片、脚本、样式等组件的下载,等等,尤其是网速高的时候。比较慢的时候,下载这些东西占用了整个网页渲染时间的大部分。这些东西下载下来之后,本地渲染显示一般都会很快,除非有很复杂的效果或者脚本,服务器的执行速度比较慢。根据具体服务器的逻辑,优化的复杂度比较高,往往站点本身需要访问其他后端服务器、数据库等。要解决这个问题,有两点可以入手。一是压缩页面组件。一般网页上使用的图片都是压缩格式,所以压缩空间不会太大,会占用额外的服务器CPU,但是脚本、样式、HTML等文本内容GZIP压缩的压缩比非常大,现在大多数浏览器都支持GZIP压缩。另一方面,将HttpExpire标头添加到脚本、样式和图片中。有了这个过期的header,网站第一次打开的时候只需要下载这些网页组件,然后打开甚至不需要发起HTTP请求,直接在本地加载,当然脚本和样式服务器可能以后更改,我们需要使用URL重写来自动重命名脚本和样式引用,以便在脚本和页面更新后刷新浏览器缓存。好消息是,要实现这两点,在IIS7中是非常简单的。首先,让我们谈谈压缩。在win7中,使用“打开或关闭Windows功能”来打开IIS性能工具中的“动态内容压缩”和“静态内容压缩”。图1然后在IIS管理器中,选择要压缩的网站,双击压缩按钮,勾选动态压缩和静态压缩。默认情况下,mimetype是text/*并且application/x-javascript将被压缩。一般这样就够了,但是IIS7默认对.js文件使用application/x-javascriptmimetype,对application/x-javascript默认是动态压缩。动态压缩和静态压缩的区别在于不会被IIS缓存机制缓存。每次访问都会读取文件或者路由请求到下面的模块,所以我们需要将.js的mimetype改为application/javascript,如图2,然后动态压缩application/x-javascript,静态压缩application/javascript为压缩,需要配置C:\Windows\System32\inetsrv\config\applicationHost.config。如图3所示,对页面组件进行了压缩,减少了很多网络流量,性能也有很大提升,但是有些脚本和样式一般情况很少改变,每次访问网页重新下载还是会消耗大量网络流量,需要配置静态文件的过期时间。IIS7的manager有HTTP响应头的功能。一般网站的脚本、样式和图片分别放在scripts、styles和images目录下。我们直接将这些目录下文件的过期时间设置为100天。可以的,直接在IIS7的管理器中操作即可。详见参考链接,不再赘述。设置成功后会在三个子目录下分别生成一个web.config文件,cacheControlMode=UseMaxAge,cacheControlMaxAge=100.00:00:00这样设置后优化效果会很好。第一次打开网页后,再次打开网页会比之前快很多倍,但是有一个问题就是如果你修改了样式或者脚本,如果客户端不刷新页面的话,就不会了't生效。为了解决这个问题,使用URLRewrite在样式和脚本的引用路径中添加时间戳。如果脚本改变了,时间戳会改变,引用的文件名也会改变,浏览器会下载新的样式,而新的样式其实和之前url重写后的名字一样,比如/scripts/base.201001111502.js其实就是/scripts/base.js,详见参考文章。但是文章说的是iis6.0使用了URLRewrite组件。IIS7中有一个免费的rewrite模块,可以到微软网站下载安装。它的配置规则不同于URLRewrite。最重要的区别是对于正则组匹配,不再使用$1和$2来引用,而是使用{R:1}的格式来引用,并且目标url的配置不需要正则转义字符,比如“.”。是“.”,不需要是“\.》,如果不注意这个,就等404就好了。IIS7.5下rewrite模块的具体使用和注意事项可以参考下面的参考链接,我这里的配置是这样的:{{{
