`

优化网站性能的14条准则

 
阅读更多

  内容再丰富的网站,如果慢到无法访问也是毫无意义的; SEO做的再好的网站,如果搜索蜘蛛抓不到也是白搭; UE设计的再人性化的网站,如果用户连看都看不到也是空谈。

  所以网页的效率绝对是最值得关注的方面。如何才能提高一个网页的效率呢?Steve Souders(Steve Souders的资料http://www.oreillynet.com/pub/au/2951)提出的提高网页效率的14条准则:

  • Make Fewer HTTP Requests
  • Use a Content Delivery Network
  • Add an Expires Header
  • Gzip Components
  • Put CSS at the Top
  • Move Scripts to the Bottom
  • Avoid CSS Expressions
  • Make JavaScript and CSS External
  • Reduce DNS Lookups
  • Minify JavaScript
  • Avoid Redirects
  • Remove Duplicate Scripts
  • Configure ETags
  • Make Ajax Cacheable

  下面,就来具体分析一下14条准则具体的内容和作用

第一条:Make Fewer HTTP Requests 尽可能的减少HTTP的Request请求数

  80%的用户响应时间都是浪费在前端。而这些时间主要又是因为下载图片、样式表、JavaScript脚本、flash等文件造成的。减少这些资源文件的Request请求数将是提高网页显示效率的重点。

  这里好像有个矛盾,就是如果我减少了很多的图片,样式,脚本或者flash,那么网页岂不是光秃秃的,那多难看呢?其实这是一个误解。我们只是说尽量的减少,并没有说完全不能使用。减少这些文件的Request请求数,当然也有一些技巧和建议的:

  1:用一个大图片代替多个小图片。

  页面上的每张图片都将引发一次http请求,虽然小图片的下载速度会比大图片快,但是当请求数比较多的情况下时,明显是大图片加载的效率远高于众多零碎的小图片。所以如果可能还是使用大图片来替代过多的琐碎的小图片吧。这也是为什么翻转门的效率要高于图片替换实现的滑动门的原因。

但是,请注意:也不能用太大的单张图片,因为那样会影响到用户体验。例如个几兆的背景图片的使用绝对不是一个好主意。

  2:合并你的css文件。

  这个很容易理解,页面中每使用一个调用外部css的<link>标签时,都会像服务器发送请求,从而降低网页的效率。所以,从提高网页效率的角度上而言,我们还是应该将所有的css写在同一个css文件中。

  3:合并你的javascript文件。

  原因和处理同上。

第二条:Use a Content Delivery Network 使用CDN

  这个看上去好像很深奥的样子,但是只要结合中国的网络特色,这个便不难理解了。“南电信,北网通”的口号相信大家都有所耳闻,试想一个北方的用户在网通线路中访问电信服务器下的一个图片站点的话,我敢打赌他一定会有砸机器的冲动。

第三条:Add an Expires Header 添加周期头

  这个也并非开发人员来控制,而是网站服务器管理员的职责。所以,如果作为开发人员的你不了解和明白也没有关系。还是把这个准则告诉公司的网站服务器管理员。

第四条:Gzip Components 启用Gzip压缩

  这个大家应该比较熟悉。Gzip的思想就是把文件先在服务器端进行压缩,然后再传输。这对于体积较大的纯文字型的文件有特效。鉴于这也并非开发人员,而是网站服务器管理员的工作范畴,这里就不详细讲解了。如果对此也感兴趣,可以资讯网站服务器管理人员或者baidu。

第五条:Put CSS at the Top 把CSS样式放在页面的上方。

  无论是HTML还是XHTML还是CSS都是解释型的语言,而非编译型的。所以CSS到上方的话,那么浏览器解析结构的时候,就已经可以对页面进行渲染。这样就不会出现,页面结构光秃秃的先出来,然后CSS渲染,页面又突然华丽起来,这样太具有“戏剧性”的页面浏览体验了。

第六条:Move Scripts to the Bottom 将脚本放在底部

  原因同第五条一样。只是脚本一般是用来于用户交互的。所以如果页面还没有出来,用户连页面都不知道什么样子,那谈交互简直就是扯谈。所以,脚本和CSS正好相反,脚本应该放在页面的底部。

第七条:Avoid CSS Expressions 避免使用CSS中的Expressions

  CSS Expressions是什么一个东西。其实说白了,就是在css中进行逻辑运算的一种写法

  input{background-color:expression((this.readOnly && this.readOnly==true)?”#0000ff”:”#ff0000″)}

  类似上面的这个css例子就是CSS Expressions。可以想象,人家css的本身作用只是渲染网页,而你硬是要他完成一系列的逻辑运算,这样的难题怎么会处理得妥当呢?

第八条:Make JavaScript and CSS External 将javascript和css独立成外部文件

  这条看似好像和第一条中要求的减少http请求有所矛盾,既然要减少http请求,那势必就要减少外部文件的调用。其实不然,之所以这么做,是因为另外一个重要的考虑因素——缓存。因为外部的引用文件会被浏览器缓存,所以如果javascript和css体积较大的时候,我们将它们独立成外部文件。这样当用户只要浏览一次以后,这些体积较大的js和css文件就能被缓存起来,从而极高地提高用户再次访问时的效率。

第九条:Reduce DNS Lookups 减少DNS查询

  DNS域名解析系统。大家都知道我们之所以能记住那么多的网址,是因为我们记住的都是单词,而非http://202.153.125.45这样的东西, 而帮我们把那些单词和202.153.125.45这样的ip地址联系起来的就是DNS。那这一条对我们到底有什么真正意义上的指导意义呢?其实有两条:

  1:如果不是必须,请不要把网站放到两台服务器上。

  2:网页中的图片、css文件、js文件、flash文件等等,不要太多的分散在不同的网络空间中。这就是为什么那种只发一个网站中的壁纸图片的帖子,要比壁纸图片来源于不同网站的帖子显示要快得多的原因。

第十条:Minify JavaScript and CSS 减少JavaScript和CSS文件的体积

  这点无需解释,文件越小当然加载越快。网上也随处可见好用的javascript和css压缩工具。这里就不多说了。

第十一条:Avoid Redirects 避免跳转

  从网页开发人员的角度来解读此条。那么我们可以解读到什么东西呢?

  1:“此域名已过期,5秒钟以后,页面将跳转到http://www.52ladybug.com/页面”,这句话看起来的确很熟悉。但是,很奇怪了,为什么不直接链接到那个页面呢?

  2:一些链接地址请更明确的写出来。例如:将http://www.52ladybug.com/ 写成http://www.52ladybug.com (注意最后面一个“/”符号)。的确,这两个网址都能访问到我的博客,但事实上,它们是有区别的。http://www.52ladybug.com 的结果是个301响应,它会被重新指向http://www.52ladybug.com/ 。但是显然,中间多浪费了一些时间。

第十二条 Remove Duplicate Scripts 移除重复的脚本

  这点和之前的第十点一样容易理解,但是值得注意的地方是,一些外部引用进来的javascript框架往往携带大量的冗余,使用前最好是能对其进行一定的清理,css也一样。

第十三条:Configure ETags 配置你的实体标签

  首先来讲讲什么是Etag吧。Etag(Entity tags )实体标签。这个tag和你在网上经常看到的标签云那种tag有点区别。这个Etag不是给用户用的,而是给浏览器缓存用的。Etag是服务器告诉浏览器缓存,缓存中的内容是否已经发生变化的一种机制。通过Etag,浏览器就可以知道现在的缓存中的内容是不是最新的,需不需要重新从服务器上重新下载。这和“Last-Modified”的概念有点类似。很遗憾作为网页开发人员对此无能为力。他依然是网站服务器人员的工作范畴。如果对此有兴趣,可以咨询网站服务器管理员或者baidu。

第十四条:Make Ajax Cacheable 上面的准则也适用Ajax

  现在的Ajax好像有点被神话了,好像网页只要Ajax了,那么就不存在效率问题了。其实这是一种误解。拙劣的使用Ajax不会让你的网页效率更高,反而会降低你的网页效率。Ajax的确是个好东西,但是请不要过分的神话它。使用Ajax的时候也要考虑上面的那些准则。个人的建议是在能不用Ajax的地方就尽量不要用他。

  当然,在网站优化的过程中,很多时候并不是真正能按照以上14条准则完全执行。事实上,大多数的情况是需要网站优化者在多出进行取舍,完全没有必要生搬硬套这些理论。总之,能有效提高网站性能的做法,都是好方法。


分享到:
评论

相关推荐

    高流量Web2.0网站性能调优的14条准则

    Yahoo作为互联网巨头,积累了大量的经验和知识,提出了14条准则来提升网站性能。以下是对这些准则的详细解析: 1. 减少HTTP请求:每个HTTP请求都会增加页面加载时间,包括HTML、JavaScript、CSS和图片。应尽量合并...

    Oracle性能优化的基本准则总结

    以下是对Oracle性能优化基本准则的详细解读: 1. **最小化结果集**:在进行多表联接时,应优先使用Where语句来减少单个表的数据量,然后再与其他表进行联接。同时,利用聚合函数先对数据进行汇总,可以进一步缩小...

    Yahoo网站性能优化的34条规则

    【Yahoo网站性能优化的34条规则】是Yahoo公司提出的一系列关于提升网站性能的实践准则,主要关注如何减少终端用户的加载等待时间,提高用户体验。这些规则覆盖了多个方面,包括减少HTTP请求次数、减少DNS查找次数...

    android app性能优化

    ### Android App性能优化的核心策略与实践 在移动设备上运行的Android应用程序,受限于设备的计算能力、存储空间以及电池续航能力,优化其性能成为开发者不可忽视的重要任务。本篇文章将深入探讨Android应用性能...

    MySQL的SQL查询性能优化技术.pdf

    MySQL的SQL查询性能优化技术是数据库管理中至关重要的一环,对于提升系统效率和用户体验有着显著影响。本篇主要探讨了优化SQL查询的一些基本原则、企业级监控、配置与参数化、数据管理和性能考量等方面。 首先,...

    全关系系统的十二条基本准则

    在本章中,我们将深入探讨全关系系统的核心概念、基本准则以及查询优化的重要性。 首先,我们要理解关系模型的三个基本要素:数据结构、关系操作和数据完整性。数据结构主要指的是关系,也就是二维表格的形式;关系...

    基于SNR准则和互信息准则的雷达波形优化算法

    综上所述,基于SNR准则和互信息准则的雷达波形优化算法是提升雷达系统性能的关键技术。通过合理设计和优化雷达波形,可以有效地增强雷达的探测能力,提高信息获取效率,适应不同作战环境和任务需求。这不仅是理论...

    微软文档:Windows Server 2022 性能优化指南-255页

    微软文档:Windows Server 2022 性能优化指南 本指南提供了一组准则,旨在帮助用户调整 ...本指南为用户提供了一组详细的性能优化准则,以帮助他们调整 Windows Server 2022 中的服务器设置,提高性能或能源效率。

    拓扑优化99行、88行等程序(包括MMA、OC两种算法)

    优化准则法是一种常见的拓扑优化方法,它通过迭代更新设计变量,使结构性能满足预设的目标函数。OC法的核心在于构建一个优化准则,比如最小化结构的重量,同时确保满足强度、刚度等性能要求。在MATLAB程序中,这...

    SIMP-OC_OC优化准则_OC准则法_cloudo9a_matlab_top99_源码.zip

    "OC优化准则"则是"操作条件(Operating Condition)"优化准则,它强调在特定工作条件下优化设计的性能。"Cloudo9a"可能是某种特定的算法或者软件工具的名字,而"matlab"表明源码是用MATLAB编程语言编写的。"top99...

    遗传算法优化性能评价准则研究 (2006年)

    为了克服传统遗传算法优化性能评价准则(如在线性能、离线性能)忽略随机因素对算法的影响,从而不能准确评价算法性能的缺点,提出了一种基于平均偏离距和偏离距标准差的新的遗传算法优化性能评价准则,给出了平均...

    浅谈Oracle 11g数据库性能调整和优化.pdf

    本文主要探讨了Oracle 11g数据库性能调整和优化的常用准则、影响性能的一些相关因素、未达到优化目的应该怎样设置有关参数等等。最后,文章还简要介绍了Oracle 11g自带的优化工具。 本文的关键词有性能调整和优化、...

    C++编程规范101条规则、准则与最佳实践 PDF扫描版.pdf

    由于提供的文件信息中包含的内容主要是关于一本电子书《C++编程规范101条...在实际应用这些知识时,需要注意的就是结合自己的项目需求,灵活运用这些规则和准则,以达到提高代码质量、优化性能和增强可维护性的目的。

    电子功率准则和信息准则介绍

    电子干扰是电子对抗中的...因此,未来的研究需要在现有评估准则的基础上,结合电子对抗领域的新技术、新设备、新环境等条件,不断优化和创新,形成更加科学、合理的评估方法,为电子对抗提供更有效的理论和技术支持。

    SQLServer数据库性能优化[借鉴].pdf

    SQL Server 数据库性能优化技巧 设计一个应用系统似乎并不难,但是要想使系统达到最优化的性能并不是一件容易的事。在开发工具、数据库...只有通过结合实际情况,选择合适的方法和技术,才能实现系统的最优化性能。

    SQL Server数据库的性能分析和优化策略研究

    ### SQL Server数据库的性能分析和优化策略研究 #### 一、引言 随着信息技术的快速发展,企业纷纷构建了自己的信息系统,数据库作为信息系统的核心组成部分,其性能直接影响到整个系统的稳定性和响应速度。传统上...

    据三维Hashin失效准则和Chang-Chang退化准则.zip

    在IT行业中,尤其是在材料科学和工程计算领域,三维Hashin失效准则和Chang-Chang退化准则具有重要的...同时,这些准则也是材料科学研究和工程教育的重要内容,对于推动新材料的开发和已有材料性能的优化起到关键作用。

Global site tag (gtag.js) - Google Analytics