`

Yahoo WEB前端优化34条原则

web 
阅读更多
Yahoo给出的包括Yslow规则(22条)的34条详细说明 ,通过这此规则对自己页面进行一次全面的分析优化,可以提高你网站的加载速度。

1.Minimize HTTP Requests 减少HTTP请求

图片、CSS、script、flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间。把多个JS、CSS在可能的情况下写进一个文件,页面里直接写入图片也是不好的做法,应该写进CSS里,利用 CSS sprites 将小图拼合后利用background来定位。

2.Use a Content Delivery Network 利用CDN技术

CDN 确实是好东西,8过服务器提供商的这项服务一般是要收费的,我以前买的国内空间是有这个的但是我当时根本不知道啥用,现在没了。。。

3.Add an Expires or a Cache-Control Header 设置头文件过期或者静态缓存

浏览器会用缓存来减少http请求数来加快页面加载的时间,如果页面头部加一个很长的过期时间,浏览器就会一直缓存页面里的元素。不过这样如果页面里的东西变动的话就要改名字了,否则用户端不会主动刷新,看自己衡量了~ 这项可以通过修改.htaccess文件来实现。

4.Gzip Components Gzip压缩

Gzip格式是一种很普遍的压缩技术,几乎所有的浏览器都有解压Gzip格式的能力,而且它可以压缩的比例非常大,一般压缩率为85%。压缩没压缩,可以到 这里 做下测试。

5.Put Stylesheets at the Top 把CSS放顶部

让浏览者能尽早的看到网站的完整样式。

6.Put Scripts at the Bottom 把JS放底部

网站呈现完毕后再进行功能设置,当然这些JS要在你的加载过程中不影响内容表现。

7.Avoid CSS Expressions 避免CSS Expressions

CSS表达式很可怕,这个只被IE支持的东西执行时候的运算量非常大,你移动一下鼠标它都要进行重计算的,但有时候为了做浏览器的兼容必须要用到这个||| IE6去死去死!~

8.Make JavaScript and CSS External 将JS和CSS外链

前面讲到了缓存这个事情,一些较为公用的JS和CSS,我们可以使用外链的形式,譬如我就是从Google外链来的Jquery文件,如果我的浏览者在浏览别的使用了这个外链文件的网站时已经下载并缓存了这个文件,那么他在浏览我的网站的时候就不需要再进行下载了!~

9.Reduce DNS Lookups 减少DNS查找

貌似是要减少网站从外部调用资源,我的Google分析和picasa的外链图片都算在里面了。

10.Minify JavaScript and CSS 减小JS和CSS的体积

写JS和CSS都是有技巧的,用最少的代码实现同样的功能,减少空白,增强逻辑性,用缩写方式等等,当然也有不少工具也能够帮你实现这一点。

11. Avoid Redirects 避免重定向

再写入链接时,虽然“http://www. today-s-ooxx. com”和“http://www. today-s-ooxx. com/” 仅有一个最后的“/”只差,但是结果是不同的,服务器需要花时间把前者重定向为后者然后进行跳转,这个要自己注意,也可以在Apache里用Alias 或者mod_rewrite或者DirectorySlash解决。

12. Remove Duplicate Scripts 删除重复脚本

重复调用的代码浏览器并不会识别忽略,而是会再次运算一遍,这当然是大大的浪费。
13. Configure ETags 配置ETags

搞不清楚咋回事,总之我是在。 htaccess里把它删除了。

14. Make Ajax Cacheable 缓存Ajax

Ajax是实时响应的,在浏览器接收到新的数据前,旧的数据被缓存,这样能够更好的提高效率。

15. Flush the Buffer Early 尽早的释放缓冲

当用户进行页面请求时,服务器端需要花费200到500毫秒时间来拼合HTML,将写在head与body之间,释放缓冲,这样可以将文件头先发送出去,然后再发送文件内容,提高效率。

16. Use GET for AJAX Requests 用GET方式进行AJAX请求

Get 方法和服务器只有一次交互(发送数据),而 Post 要两次(发送头部再发送数据)。

17. Post-load Components 延迟加载组件

最先加载必须的组件进行页面初始化,然后再加载其他,YUI Image Loader 是很好的例子。

18. Preload components 预加载组件

提前加载以后可能用到的东西,和延迟加载并不冲突,它的目的是为后续请求提供更快的响应,参见Google首页上的CSS sprites应用。

19. Reduce the Number of DOM Elements 减少DOM元素数量

复杂的页面结构意味着更长的下载及响应时间,更合理更高效的使用标签来架构页面,是好的前端的必备条件。

20. Split Components Across Domains 跨域分离组件

页面组件多个来源可以增大你的平行下载量,但注意不要过多,超过2-4个域名会引起上面说到的DNS查找浪费。

21. Minimize the Number of iframes 减少iframe数量

需要更有效的利用 ifames。

iframe 优点:有利于下载缓慢的广告等第三方内容,安全沙箱,并行下载脚本

iframe 缺点:即使为空也会有较大资源消耗,会阻止页面的onload,非语义

22. No 404s 不要出现404页面

站点本身里(非搜索结果)出现404页面,无意义的404页面会影响用户体验并且会消耗服务器资源。

23. Reduce Cookie Size 减小Cookie

Cookie在服务器及浏览器之间的通过文件头进行交换,尽可能减小Cookie体积,设置合理的过期时间,能够很好的提高效率。

24. Use Cookie-free Domains for Components 对组件使用无Cookie的域名

对静态组件的Cookie读取是一种浪费,使用另一个无Cookie的域名来存放你的静态组件式一个好方法,或者也可以在Cookie中只存放带www的域名。
25. Minimize DOM Access 减少DOM的访问次数

JS访问DOM是很慢的,尽量不要用JS来设置页面布局。

26. Develop Smart Event Handlers 开发灵活的事件处理句柄

DOM树上过多的元素被加入事件句柄的话,反应效率肯定会低,YUI事件工具有一个 onAvailable 方法可以帮助你灵活的设置DOM事件句柄

27. Choose 《 link 》over @import 使用《 link 》而非 @import

在IE中使用@import就和在页面底部用《 link 》一样,我们前面说要把《 link 》放顶部的。

28. Avoid Filters 避免过滤器的使用

如果需要Alpha透明,不要使用AlphaImageLoader,它效率低下而且只对IE6及以下的版本适用,用PNG8图片。如果你非要使用,加上_filter以免影响IE7+用户。

29. Optimize Images 优化图片

将你的GIF转为PNG8会是个减小体积的好办法,另外有很多方法处理你的JPG及PNG图片以达到优化效果。

30. Optimize CSS Sprites 优化CSS Sprites

在CSS Sprites中竖直并尽量紧凑的排列图片,尽量将颜色相似的图片排在一起,会减小图片本身的大小及提高页面图片显示速度。

31. Don’t Scale Images in HTML 不要在HTML中缩放图片

图片要用多大的就用多大的,1000X1000的图片被width=”100″ height=”100″以后,本身的KB数是不会减少的。

32. Make favicon. ico Small and Cacheable 缩小favicon. ico的大小并缓存它

站点的浏览器ICO应该不是经常换吧,那就长时间的缓存它,并且最好控制在1K以下。

33. Keep Components under 25K 保证组件在25K以下

iPhone不能缓存25K以上的组件,并且这还是要在被压缩前。

34. Pack Components into a Multipart Document 将组件打包进一个多部分的文档中

就好像在邮件中加入附件一样,一个HTTP请求就够了,但是这一技术需要确保你的代理支持,iPhone就不支持。
分享到:
评论

相关推荐

    Web前端性能优化全攻略

    以下是基于内容篇的10条优化原则的详细解释: 1. **减少HTTP请求**:合并文件是最直接的减少HTTP请求的方法,例如将多个CSS文件整合成一个。CSS Sprites技术也能有效地减少图像请求,通过将多个小图合成一张大图并...

    Web前端优化

    关于Web前端优化,网上已经有太多的文章,平时主要用的也就是Firefox的两个插件,Yahoo的YSlow和Google的Page Speed(如果您有其它比较好用的,分享一下哦),它们会对你的网页进行检测,哪些做的比较好,哪些还有待...

    基于web前端的性能优化框架模型计算机研究.docx

    雅虎提出的14条优化原则,如减少HTTP请求、使用CDN、压缩CSS和JavaScript等,提供了基础性的指导。然而,这些原则主要针对HTTP协议现有的局限性。 Google在Web前端性能优化方面也做出了许多贡献,包括Page Speed...

    前端工程与性能优化[归纳].pdf

    雅虎14条性能优化原则是前端性能优化的基础,包括减少HTTP请求数量、压缩资源、缓存利用等。这些原则在《高性能网站建设指南》和《高性能网站建设进阶指南》中得到了深入阐述。尽管许多团队能够执行诸如JavaScript...

    yahoo注册前端设计

    总的来说,“Yahoo注册前端设计”是一个涵盖多个设计原则和实践的综合任务,涉及视觉艺术、用户体验、技术实现等多个领域。通过精心设计,我们可以创建出既美观又实用的注册页面,提升Yahoo的品牌形象和用户满意度。

    前端性能优化建议

    雅虎军规中的2-5-8原则也是性能优化的一个重要参考,它描述了用户对页面加载速度的感知,并指导开发者通过优化将页面响应时间控制在最佳范围内。 总而言之,前端性能优化涉及的知识点相当广泛,包括但不限于资源...

    前端开源库-combohandler

    总的来说,Combohandler 是一个优化前端性能的利器,它遵循了减少HTTP请求的优化原则,通过合并资源文件,提高了页面加载速度。对于追求高性能的Web开发者来说,理解和掌握如何使用这种技术是非常有价值的。同时,...

    Yahoo!网站性能最佳体验的34条黄金守则

    网站性能最佳体验的34条黄金守则】是Yahoo!的Exceptional Performance团队在深入研究和实践后提出的一套优化Web性能的策略。这些守则旨在提高网站加载速度,提升用户体验,从而增强网站的吸引力和可用性。以下是其中...

    前端项目-pure.zip

    Pure.css由雅虎公司开发并维护,旨在为开发者提供一套简洁而实用的样式模块,以帮助快速构建现代Web应用程序。这个框架的特点是小巧、高性能,且易于定制,使得它成为许多开发者在构建跨设备兼容网站时的首选工具。 ...

    Nicholas C. Zakas如何面试前端工程师

    Zakas是前端社区的重要人物,曾经参与过Yahoo! UI库的开发,并著有多本关于JavaScript和前端工程的书籍。他的观点和经验对于准备前端面试或进行面试官角色的人来说非常有价值。 在前端面试中,主要考察的知识点...

    雅虎中国首页全屏可伸缩可关闭flash广告代码.zip

    这个名为"雅虎中国首页全屏可伸缩可关闭flash广告代码.zip"的压缩包文件显然包含了与前端开发相关的代码,特别是针对Flash广告的设计和交互功能。以下是基于这个主题的详细知识点解释: 1. **Flash技术**:在过去的...

    网页前端开发笔试题.pdf

    11. **性能优化**:YSlow是Yahoo开发的性能评估工具,它提供了一套最佳实践来提高网页加载速度。优化策略包括减少HTTP请求、压缩资源、缓存利用等。 掌握这些基础知识和技能对于成为一名成功的前端开发工程师至关...

Global site tag (gtag.js) - Google Analytics