IIS7下Asp.net网站优化站点性能技巧

首先我们要学一些优化网站性能和体验的理论和基础知识,雅虎已经帮我们总结好了,详见参考链接中的几篇文章,有好心人已经给翻译成中文了。

Web服务器的性能优化有很多资料介绍了,多台主机负载均衡,查询结果的多级缓存,数据库索引优化等都是常见的优化手段。随着后端优化空间越来越小,现在越来越多的网站更注重前端性能的优化,就是浏览器,http层面的优化,这里写两点最简单最有效的asp.net网站优化技巧。

了解常见的网站性能优化技巧

首先我们要学一些优化网站性能和体验的理论和基础知识,雅虎已经帮我们总结好了,详见参考链接中的几篇文章,有好心人已经给翻译成中文了。这里面提到的一些技巧可操作性都很强,建议每一个网站开发人员都仔细学习并进行实践,可以说不了解这里面说的优化技巧,提升网站前端性能就无从谈起。

诊断网站性能

要想优化网站的前端性能,首先要查看最影响前端性能的瓶颈是哪些?最常用的工具就是Google的Page Sped和Yahoo的YSlow,这两个工具都是在Firefox下使用的,并且是基于FireBug的,FireBug是前端开发人员必备的一个插件了。这两个工具可以帮你诊断你的页面的性能瓶颈在哪里,比如打开你的站点首页共消耗了多少网络流量,进行了多少次HTTP请求,每个页面组件是否可以进行缓存,页面加载的各个执行过程各占用了多少时间,加载中是否有阻塞情况,页面组件并行加载情况如何,图片是否还可以进行无损压缩,脚本和样式放置的位置是否合理,是否删除了不必要的空白,是否进行了gzip的压缩等等。知道了这些信息,你就可以有针对性的进行网站性能优化,先把最影响性能的地方优化掉。

这两个工具使用起来也很简单,详见参考链接中的两篇文章。

进行优化实践

根据我对网站优化的学习和实践,总结出来一些经验:一般网站性能消耗都集中在网络下载上,包括页面本身的HTML以及图片,脚本,样式等组件的下载,尤其是在网速比较慢的时候,下载这些东西要花费整个网页呈现的大部分时间,这些东西下载完成后,本地的渲染和展现一般会很快,除非有很复杂的效果或脚本,而服务端执行的快慢要看具体服务器的逻辑,优化起来复杂度较高,往往站点本身还要访问后端的其它服务器,数据库等。

解决这个首先有两点可以入手,一是对页面组件进行压缩,web用的图片一般本身就是压缩格式,所以压缩空间不太大,还会额外占用服务器CPU,但脚本,样式,HTML这些文本内容用GZIP压缩的压缩比就非常大了,而且现在大多数浏览器都支持GZIP压缩。另一方面是对脚本,样式,图片加Http Expire头,加上这个过期头,网站只需要第一次打开时需要下载这些网页组件,之后再打开甚至连HTTP请求都不用发起,直接在本地加载了,当然脚本和样式服务端有可能以后还会变化,我们需要利用URL重写进行脚本和样式引用的自动改名,以便在脚本和页面更新后刷新利览器缓存。

可喜的是要做到这两点,在IIS7里非常简单,首先说压缩,在win7里利用“打开或关闭windows功能”里打开IIS性能工具里的“动态内容压缩”和“静态内容压缩”,如图1。

然后在IIS管理器里,选中要压缩的网站,双击压缩按钮把动态压缩和静态压缩的勾加上就行了,默认会对mimetype为text/*和application/x-javascript进行压缩,一般这就够用了,但IIS7默认对.js文件使用application/x-javascript的mimetype,而默认对application/x-javascript进行的是动态压缩,动态压缩和静态压缩的区别就是不会被IIS的缓存机制缓存,每次访问都会去读取文件或路由请求到后面的模块,所以我们要把.js的mimetype改成application/javascript,如图2

然后对application/x-javascript进行动态压缩,对application/javascript进行静态压缩,需要配置C:\Windows\System32\inetsrv\config\applicationHost.config,如下图3

 

对页面组件进行了压缩有已经减少了不少网络流量,提升了很大的性能,但是一些脚本和样式一般情况下很少改变,每次访问网页都要重新下载还是会消耗不少网络流量,这就需要配置静态文件的过期时间了。

IIS7的管理器里有个HTTP响应标头的功能,一般网站的脚本、样式和图片分别放在scripts,styles,images目录下,我们直接为这几个目录下的文件设置过期时间为100天就可以了,在IIS7的管理器里直接可以进行操作,具体见参考链接,就不重复了,设置成功后会在这3个子目录里分别生成一个web.config文件,并设置cacheControlMode=UseMaxAge,cacheControlMaxAge=100.00:00:00这样设置以后优化效果就很好了,第一次打开网页后,再次打开网页要比以前快好多倍,但是有一个问题就是如果你的样式或脚本修改后,如果客户端不刷新页面,就不会生效了。解决这个问题利用URL Rewrite把样式,脚本的引用路径加一个时间戳,如果脚本改动了后,时间戳就改动了,引用的文件名就变了,浏览器就会下载新的样式了,而新的样式实际上经过url rewrite后还是以前的名字,比如/scripts/base.201001111502.js实际上就是/scripts/base.js,具体操作见参考文章。

但文章里说的是iis6.0用的是URLRewrite组件,在IIS7里有一个免费的rewrite模块,在微软网站下载下来安装上就行了,它的配置规则和URLRewrite不太一样,最重要的区别就是对正则分组匹配不是用$1,$2引用,而是用{R:1}这种格式引用,还有就是目标url的配置不需要正则转义符,比如“。”就是“。”,不需要是“\。”,如果不注意这个就等着404吧,具体IIS7.5下的重写模块使用和注意事项可看后面的参考链接,我这里的配置如下


{{{
<rewrite>
  <rules>
    <rule name="static_file_auto_version">
      <match url="^(scriptsstylesimages)/(.*?)\.[0-9]+\.(cssjsgifpngjpg)" />
      <action type="Rewrite" url="{R:1}/{R:2}.{R:3}" />
    </rule>
  </rules>
</rewrite>
}}}

小节

进行了这两处优化后,网站性能已经提升了不少了,接下来再按照雅虎提供的优化原则和page speed的提示看看还有哪些是可以比较简单而有效的进行优化的

时间: 2024-10-02 04:32:57

IIS7下Asp.net网站优化站点性能技巧的相关文章

我在开发网站后得出的asp.Net网站优化总结

原文:我在开发网站后得出的asp.Net网站优化总结 asp.Net网站优化总结: 1.数据库优化:       首先是对查询语句的优化,开发时为了图快可以不考虑,但是后期维护时就必须要优化(比如:你调用代码生成器生成的GetById方法查询数据库所有字段,当你只需要查询一个Name的时候,你也调用string Name=GetById(id).Name,这在使用上没问题,但是对于数据库来说就有太多的查出的字段值是没用到的,也就是浪费,这时候就需要写另外一个只查询Name字段的方法来优化了,虽然

网站优化几点技巧

网站优化几点技巧 一.如何让自己的www2级域名取得比主域名更高的权重. 在建站之初,我也曾被这个问题困扰过.百度对qiushiw.cn的收录反应似乎比www.111cn.net的快很多.当我的www网站收录还是几篇的时候,我的主域名已经收录了70多篇.这种状态持续下去对长期发展是不利的.如何提醒百度蜘蛛,我的www是我的主要域名.我仅仅需要在几个方面稍加注意:首先,尽量不要用指向根目录的方式来做站内链接.直接写绝对链接.否则别人用主域名访问,点链接取得的还是主域名.第2,在站点内,适当设置几个

网站优化:不用技巧就是最好的技巧

一直认为,对于网站建设和网站来说,心态远远比技巧重要.网站建设与网站优化,没有技巧或者不用技巧,就是最好的技巧,也是最有效果的技巧.不用技巧的本质就是回归自然,无论网站建设还是网站优化,内容才是根本,只有网站内容丰富且优质才会得到用户的认可,也才会的得到搜索引擎的青睐.但是,尽管不去刻意使用,作为专业的网站建设和网站优化人员,还是要知晓必需的方法和技巧的,做到含而不露,做到知而不惑那么离成功和目标就很近了. 一.坦诚是做人的基本原则,网站优化也是一样 还是心态问题,无论网站建设还是网站优化,拥有

SEO新手应该掌握的网站优化的八大技巧

seo教程新手应该掌握的网站优化的八大技巧 要定期检查友情链接的健康度,如果出现收录大量减少或者只剩首页的网站需要注意了,八成是被惩罚了,这个时候为了避免被牵连,要立即删掉对方的链接并尽快通知对方站长,也许这个时候他还不知道网站被惩罚,你的一个友情提示也许就能帮助他及时的采取补救措施,来挽救网站.还是那句话,友情链接重在友情,大家也许都经历过自己的链接随便就被对方去掉,对方网站被k影响到自己的网站受牵连,这个时候请你一定不要生气,尽量向对方询问删除链接的原因,如果对方删除链接的原因是因为我们的网

用ASP.NET缓存提高站点性能

asp.net|缓存|性能|站点 [简介] ASP.NET提供三种主要形式的缓存:页面级输出缓存.用户控件级输出缓存(或称为片段缓存)和缓存API.输出缓存和片段缓存的优点是非常易于实现,在大多数情况下,使用这两种缓存就足够了.而缓存API则提供了额外的灵活性(实际上是相当大的灵活性),可用于在应用程序的每一层利用缓存.本文全面介绍了这三种缓存技术在系统各层中的应用. 在ASP.NET提供的许多特性中,缓存支持无疑是我最欣赏的特性,我这样说当然是有充分理由的.相比ASP.NET的所有其他特性,缓

充分利用ASP.NET缓存提高站点性能

asp.net|缓存|性能|站点 [简介]ASP.NET提供三种主要形式的缓存:页面级输出缓存.用户控件级输出缓存(或称为片段缓存)和缓存API.输出缓存和片段缓存的优点是非常易于实现,在大多数情况下,使用这两种缓存就足够了.而缓存API则提供了额外的灵活性(实际上是相当大的灵活性),可用于在应用程序的每一层利用缓存.本文全面介绍了这三种缓存技术在系统各层中的应用. 在ASP.NET提供的许多特性中,缓存支持无疑是我最欣赏的特性,我这样说当然是有充分理由的.相比ASP.NET的所有其他特性,缓存

新百度算法下的企业网站优化策略分析

企业网站虽然从功能上还没有多么大的突破,依然处于一个企业在互联网上的门脸作用,但是这个门脸如果网站排名太低,让客户很难搜索到,那也不会对客户留下更好的印象,况且有些先知先觉的企业已经开始发现互联网能够给企业带来不少的生意,在这种背景下,不少企业开始重视自身网站的排名,有的采用了百度竞价,有的为了节省银子,就采用了SEO优化的方法,本文探讨的重点就是在百度新的算法下,企业网站的优化策略. 百度新算法的主要特点 在2013年以来,百度连续发布和升级了多套算法,无论是石榴算法还是绿萝算法都做了一次较大

当前搜索引擎形势下学生从事网站优化需规避的禁区

随着网站的不断发展,都吸引了很多的学生都投入到了网站优化这个行业当中来,但是由于目前搜索引擎行业目前变化比较频繁,特别是百度这个搜索引擎,学生在从事网站优化的时候需要注意的问题是有很多的,我在这里和大家分享一下学生目前形势下从事网站优化禁区有哪些. 不要花费太多的钱去做网站 现在很多学生在从事网站优化的时候都是凭着一股劲往前冲,向里面投入很多的金钱,丝毫不考虑自己的经济承受能力,而且学生还没有自己的的经济收入,这样就向里面投入太多的金钱是非常不好的行为.做网站对于大多数学生而言,学生应当定位到投

企业网站优化的一些技巧经验

当网站托管给别人做seo网站优化的时候,有些企业网站负责人就会完全忽略网站的事,只等着SEOER的排名报告 其实一个网站的优化,不仅仅要看SEOER的技巧与努力,更要看网站负责人的努力.并不是花点钱找人来做这事就高枕无忧的.那么,自己要怎么来做网站优化呢? SEOER可以为你做好网站结构,弄好网站外链,但网站核心内容还是你自已的事,他不知道你的企业文化,不知道你 的产品真正优化,太多不知道了.毕竟他不是你这个专业的人士,你才是! 所以,在有人负责网站优化的同时,你也需要注意一下内容的优化.网站优