内容再丰富的网站,如果慢到无法访问也是毫无意义的; SEO做的再好的网站,如果搜索蜘蛛抓不到也是白搭; UE设计的再人性化的网站,如果用户连看都看不到也是空谈。
所以网页的效率绝对是最值得关注的方面。如何才能提高一个网页的效率呢?Steve Souders(Steve Souders的资料http://www.oreillynet.com/pub/au/2951)提出的提高网页效率的14条准则,而这些准备也将是我们下篇中介绍到的YSlow工具的理论基础:
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
这里我们将逐一的讲解这些准则,对其中开发者密切相关的准备我将详细讲解。
第一条:Make Fewer HTTP Requests 尽可能的减少HTTP的Request请求数。
80%的用户响应时间都是浪费在前端。而这些时间主要又是因为下载图片、样式表、JavaScript脚本、flash等文件造成的。减少这些资源文件的Request请求数将是提高网页显示效率的重点。
这里好像有个矛盾,就是如果我减少了很多的图片,样式,脚本或者flash,那么网页岂不是光秃秃的,那多难看呢?其实这是一个误解。我们只是说尽量的减少,并没有说完全不能使用。减少这些文件的Request请求数,当然也有一些技巧和建议的:
1:用一个大图片代替多个小图片。
这的确有点颠覆传统的思维了。以前我们一直以为多个小图片的下载速度之和会小于一个大图片的下载速度。但是现在利用httpwatch工具的对多个页面进行分析后的结果表明事实并不是这样。
第一张图是一个大小为40528bytes的337*191px的大图片的分析结果。
第二张图是一个大小为13883bytes的280*90px的小图片的分析结果。
上图为大图片的分析结果,下图为小图片的分析结果。(点击图片可以查看完整大图片)
第一张大图片花费时间为:
Blocked:13.034s
Send:0.001s
Wait:0.163s
Receive:4.596s
TTFB:0.164s
NetWork:4.760s
功耗时:17.795s
真正用于传输大文件花费的时间为Reveive时间,即4.596s,多数的时间是用来检索缓存和确定链接是否有效的Blocked时间,供花费13.034s,占总时间的73.2%。
第二张小图片花费时间为:
Blocked:16.274s
Send:小于0.001s
Wait:0.117s
Receive:0.397s
TTFB:0.118s
NetWork:0.516s
功耗时:16.790s
真正用于传输文件的花费时间是Reveive时间,即0.397s,这的确要比刚才大文件的4.596s小很多。但是他的Blocked时间为16.274s,占总时间的97%。
如果这些数据还不够说服你的话,让我们看看下面这张图。这里列出了某个网页中所有图片中的花费时间示意图。当然,里面的图片有大有小,规格不一。
其中藏青色的为传输文件花费的Reveive时间,而前面白色的为检索缓存和确认链接是否有效的Blocked时间。铁一样的事实告诉我们:
大文件和小文件下载所需时间的确是不同的,差异的绝对值不大。而且下载所需时间占总耗费时间比例很小。
大约80%以上的时间是用来检索缓存和确定链接是否有效的Blocked时间。无论文件大小,这个时间的花费大致是相同的。而且所占总耗费时间的比例是极大的。
一个100k的大图片总耗费时间绝对大于4个25k的小图片的总耗费时间。而且主要差别就是4个小图片的Blocked时间绝对大于1个大图片的Blocked时间。
所以如果可能还是使用大图片来替代过多的琐碎的小图片吧。这也是为什么翻转门的效率要高于图片替换实现的滑动门的原因。
但是,请注意:也不能用太大的单张图片,因为那样会影响到用户体验。例如个几兆的背景图片的使用绝对不是一个好主意。
2:合并你的css文件。
图:合并与融合
我以前犯了一个错误,你在看我《样式表的组织与规划》的系列文章中会知道。当时,我为了方便组织和规划样式表,将用于不同用途的样式表文件分离开来,形成不同的css文件。然后在页面中根据需要引用多个css文件。根据“尽可能的减少HTTP的Request请求数”准则我们知道,那样的确是不合理的,因为那样会产生更多的HTTP的Request请求数。从而降低网页的效率。所以,从提高网页效率的角度上而言,我们还是应该将所有的css写在同一个css文件中。但是问题又来了。那么怎么来很好的组织和规划样式表呢?这的确是个矛盾。我现在的做法是采用两套版本。编辑版和发布版。编辑版仍然使用多个css文件以便于规划和组织。而等到发布的时候,再将多个css文件合并到一个文件中去,从而达到减少HTTPRequest请求数的目的。
3:合并你的javascript文件。
原因和处理方法同上,不再赘言。
分享到:
相关推荐
《社会保险法》第三十条第二款和第四十二条是关于在涉及第三人情况下的医疗费用处理规则。这两款法律规定,当医疗费用应由第三人承担,但第三人未能支付或者无法确定时,基本医疗保险或工伤保险基金应先行支付,之后...
综上所述,通过以上几点建议,我们可以显著提高SQL执行效率,进而提升整个系统的性能和用户体验。在实际应用中,还需要结合具体的数据库环境和业务需求,进行细致的分析和调优,以达到最佳的优化效果。
《Dreamweaver 网页设计与制作(第二版PPT教程)》是一份全面介绍网页设计和制作的教育资源,适合职业教育和自我提升。本教程通过一系列精心设计的项目,帮助学习者掌握使用Adobe Dreamweaver进行网页设计的核心技能...
《SLAM十四讲》是一本深入介绍SLAM理论与实践的书籍,第二版则包含了更多更新的内容和技术。这个压缩包文件提供了书中所涉及的一些第三方库,这些库在实现SLAM算法时扮演着至关重要的角色。 1. **Ceres Solver**:...
通过使用Word的自动编号功能,可以自动生成从第一条到第N条的编号。在“引用”菜单下选择“多级列表”,可以定制适合规章制度的编号样式。 7. **为 2 字标题的章目录中间加空格**: 若章节标题仅有两个字,为了...
1. 法律法规遵从性:第一条底线通常强调对国家法律法规的遵守,包括但不限于建筑行业的相关法规、标准和规定,以确保公司运营的合法性。 2. 诚信经营:诚信是企业的生命线,第二条底线可能会要求所有员工诚实守信,...
根据题目要求,以下是从《计算机组成原理答案》唐朔风第二版第三版中提取的关键知识点。 ### 计算机组成原理关键知识点 #### 1. 计算机系统的定义及组成部分 - **计算机系统**:指由计算机硬件、软件以及数据通信...
学生将学习如何创建文档结构,添加文本、图像、链接、表格和表单等元素,以及如何利用框架和模板来提高工作效率。 二、CSS(层叠样式表) CSS是用于控制网页外观和布局的关键技术。本部分将深入讲解CSS选择器、盒...
第三,课堂认真听讲是提高学习效率的最关键的时候。如果你上课的效率都保证不了,那么你下课肯定要花更多的时间去学习,去复习。 第四,养成记笔记习惯。如果觉得自己上课听不进去,那么可以尝试着记笔记,这样可以...
分三部分上传,每部分可单独解压,此为第二部分 许多WEB开发者,设计师都想学习韩国人的设计风格,特别是网页设计方面。深受韩国设计风格的影响,国内的许多网站也在模仿其设计风格,当然老是模板别人的东西也不是...
为了适应电子商务环境下的第三方物流发展,我国政府和企业需要共同努力,建立良好的外部环境,提高第三方物流公司的竞争力和创新能力,满足电子商务企业的物流需求,提高物流服务质量和效率。 nine、结论 本文对...
第十一章 Vies功能的加强与重绘效率的提高 第十二章 打印与预览 第十三章 多重文件与多重视图 第十四章 MFC 多线程程序设计 第十五章 站在众人的肩膀――使用Components & ActiveX Controls 第五篇 附录 · · · ·...
1. 高力国际建议高标库业主针对第三方物流企业的特殊需求进行优化调整,帮助项目提前锁定大面积第三方物流客户。 2. 电商自建仓库对高标库租赁市场影响减轻,电商背景的第三方物流企业未来高标库租赁需求将持续存在...
1. **公路建设管理**:国家对公路建设有明确的监管职责,各级人民政府交通主管部门需维护公路建设秩序,进行监督和管理(第二十条)。这确保了公路建设的合法性和有序性。 2. **公路建设资金**:公路建设资金来源...
第三层交换是一种网络技术,它允许网络设备在OSI模型的第三层即网络层上进行数据包的路由功能,同时仍然在第二层即数据链路层上进行交换。这种技术的出现,是为了结合二层交换的高效性和三层路由的智能性,以此提高...
3. 工作效率与工作总量的关系:第三道单选题中,3台抽水机4小时能浇地2.4公顷,计算1台抽水机1小时的工作量。2.4 ÷ 3 ÷ 4 = 0.2公顷,所以正确答案是C。 4. 小数位数的理解:第四题中的“6”在除法竖式中代表6个...
《C++编程思想第二版第二卷》是一本深入解析C++编程语言的经典著作,由Bjarne Stroustrup所著,对于任何想要深入了解C++的程序员来说,这是一本不可或缺的参考书籍。这本书以独特的思想性和实践性相结合的方式,引导...
练习中的第一题提到,如果热机气缸中的燃气燃烧释放的热量为1Q,推动活塞做功为W,排出废气带走的热量为2Q,那么热机效率η可以通过公式η=100%×(W/(1Q+2Q))计算,即η=100%×(W/3Q)。 第二题指出,热机的效率受到...