- 浏览: 1658412 次
- 性别:
文章分类
- 全部博客 (2929)
- 非技术 (18)
- Eclipse (11)
- JAVA (31)
- 正则表达式 (0)
- J2EE (4)
- DOS命令 (2)
- WEB前端 (52)
- JavaScript (69)
- 数据库 (8)
- 设计模式 (0)
- JFreechart (1)
- 操作系统 (1)
- 互联网 (10)
- EasyMock (1)
- jQuery (5)
- Struts2 (12)
- Spring (24)
- 浏览器 (16)
- OGNL (1)
- WebService (12)
- OSGi (14)
- 软件 (10)
- Tomcat (2)
- Ext (3)
- SiteMesh (2)
- 开源软件 (2)
- Hibernate (2)
- Quartz (6)
- iBatis (2)
最新评论
内容再丰富的网站,如果慢到无法访问也是毫无意义的; 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条准则完全执行。事实上,大多数的情况是需要网站优化者在多出进行取舍,完全没有必要生搬硬套这些理论。总之,能有效提高网站性能的做法,都是好方法。
发表评论
-
15款基于浏览器扩展的WEB开发工具
2009-07-29 08:44 783WEB开发工具的使用已经 ... -
WEB 服务器调试利器 -- Tamper Data(转)
2009-07-29 08:53 749一. 简介 作为 Firefox 的插件, T ... -
图片和文字放一起,不能居中的解决方法
2009-07-29 14:47 956<td align="center" ... -
深入浅出URL编码
2009-08-11 19:58 646版权声明:如有转载请求,请注明出处: http://blog ... -
【CSS布局.2】绝对定位和相对定位
2009-08-20 15:51 601Absolute ,CSS 中的写法是:positio ... -
【CSS布局.1】盒子模型
2009-08-20 15:51 616例子: .box { width: 200px; ... -
【CSS布局.4】五种CSS布局类型
2009-08-20 15:52 646CSS 布局的五种类型概述 有五种基本布局定位类型可供选择: ... -
【CSS布局.3】列表样式定义法
2009-08-20 15:52 603CSS代码: .list{ margin: 0px 10 ... -
区别不同浏览器,CSS hack写法
2009-08-20 16:01 621区别IE6 与FF : backgroun ... -
常用CSS缩写语法总结
2009-08-24 17:55 664使用缩写可以帮助减少你CSS文件的大小,更加容易阅读。css缩 ... -
CSS颜色代码大全
2009-08-25 15:55 871CSS颜色代码大全 FFFF ... -
CSS @import at规则
2009-09-02 10:40 684at规则 HTMLDog指南 > CSS高级指南 &g ... -
彻底弄懂CSS盒子模式之一
2009-09-02 17:05 690前言 如果你想尝试一 ... -
彻底弄懂CSS盒子模式之一
2009-09-02 17:06 629熟悉工作流程 在真正开始工作之前我们脑海中要形成这样一种 ... -
彻底弄懂CSS盒子模式之二
2009-09-02 17:07 615作者:唐国辉 实现原理动画演示:http://www ... -
彻底弄懂CSS盒子模式之三
2009-09-02 17:08 737一、下面请看float的精彩表演,有请。 大 ... -
彻底弄懂CSS盒子模式之五
2009-09-02 17:09 581在本人上一篇教程《彻 ... -
彻底弄懂CSS盒子模式之四
2009-09-02 17:09 677前言 在用CSS控制排版过程中,定位一直被人认为是一个难 ... -
CSS 盒模型
2009-09-02 17:11 600整理自:The CSS Box Model 中文:CSS 盒 ... -
DOM标准与IE的html元素事件模型区别
2009-09-23 13:35 702事件 HTML元素事件是 ...
相关推荐
Yahoo作为互联网巨头,积累了大量的经验和知识,提出了14条准则来提升网站性能。以下是对这些准则的详细解析: 1. 减少HTTP请求:每个HTTP请求都会增加页面加载时间,包括HTML、JavaScript、CSS和图片。应尽量合并...
以下是对Oracle性能优化基本准则的详细解读: 1. **最小化结果集**:在进行多表联接时,应优先使用Where语句来减少单个表的数据量,然后再与其他表进行联接。同时,利用聚合函数先对数据进行汇总,可以进一步缩小...
【Yahoo网站性能优化的34条规则】是Yahoo公司提出的一系列关于提升网站性能的实践准则,主要关注如何减少终端用户的加载等待时间,提高用户体验。这些规则覆盖了多个方面,包括减少HTTP请求次数、减少DNS查找次数...
### Android App性能优化的核心策略与实践 在移动设备上运行的Android应用程序,受限于设备的计算能力、存储空间以及电池续航能力,优化其性能成为开发者不可忽视的重要任务。本篇文章将深入探讨Android应用性能...
MySQL的SQL查询性能优化技术是数据库管理中至关重要的一环,对于提升系统效率和用户体验有着显著影响。本篇主要探讨了优化SQL查询的一些基本原则、企业级监控、配置与参数化、数据管理和性能考量等方面。 首先,...
在本章中,我们将深入探讨全关系系统的核心概念、基本准则以及查询优化的重要性。 首先,我们要理解关系模型的三个基本要素:数据结构、关系操作和数据完整性。数据结构主要指的是关系,也就是二维表格的形式;关系...
综上所述,基于SNR准则和互信息准则的雷达波形优化算法是提升雷达系统性能的关键技术。通过合理设计和优化雷达波形,可以有效地增强雷达的探测能力,提高信息获取效率,适应不同作战环境和任务需求。这不仅是理论...
微软文档:Windows Server 2022 性能优化指南 本指南提供了一组准则,旨在帮助用户调整 ...本指南为用户提供了一组详细的性能优化准则,以帮助他们调整 Windows Server 2022 中的服务器设置,提高性能或能源效率。
优化准则法是一种常见的拓扑优化方法,它通过迭代更新设计变量,使结构性能满足预设的目标函数。OC法的核心在于构建一个优化准则,比如最小化结构的重量,同时确保满足强度、刚度等性能要求。在MATLAB程序中,这...
"OC优化准则"则是"操作条件(Operating Condition)"优化准则,它强调在特定工作条件下优化设计的性能。"Cloudo9a"可能是某种特定的算法或者软件工具的名字,而"matlab"表明源码是用MATLAB编程语言编写的。"top99...
为了克服传统遗传算法优化性能评价准则(如在线性能、离线性能)忽略随机因素对算法的影响,从而不能准确评价算法性能的缺点,提出了一种基于平均偏离距和偏离距标准差的新的遗传算法优化性能评价准则,给出了平均...
本文主要探讨了Oracle 11g数据库性能调整和优化的常用准则、影响性能的一些相关因素、未达到优化目的应该怎样设置有关参数等等。最后,文章还简要介绍了Oracle 11g自带的优化工具。 本文的关键词有性能调整和优化、...
由于提供的文件信息中包含的内容主要是关于一本电子书《C++编程规范101条...在实际应用这些知识时,需要注意的就是结合自己的项目需求,灵活运用这些规则和准则,以达到提高代码质量、优化性能和增强可维护性的目的。
电子干扰是电子对抗中的...因此,未来的研究需要在现有评估准则的基础上,结合电子对抗领域的新技术、新设备、新环境等条件,不断优化和创新,形成更加科学、合理的评估方法,为电子对抗提供更有效的理论和技术支持。
SQL Server 数据库性能优化技巧 设计一个应用系统似乎并不难,但是要想使系统达到最优化的性能并不是一件容易的事。在开发工具、数据库...只有通过结合实际情况,选择合适的方法和技术,才能实现系统的最优化性能。
### SQL Server数据库的性能分析和优化策略研究 #### 一、引言 随着信息技术的快速发展,企业纷纷构建了自己的信息系统,数据库作为信息系统的核心组成部分,其性能直接影响到整个系统的稳定性和响应速度。传统上...
在IT行业中,尤其是在材料科学和工程计算领域,三维Hashin失效准则和Chang-Chang退化准则具有重要的...同时,这些准则也是材料科学研究和工程教育的重要内容,对于推动新材料的开发和已有材料性能的优化起到关键作用。