`
hipeace87
  • 浏览: 173623 次
  • 性别: Icon_minigender_1
  • 来自: 山东菏泽
社区版块
存档分类
最新评论

优化网站加载速度的34条法则研究

阅读更多

雅虎给出了优化网站加载速度的34条法则(包括Yslow规则22条)详细说明,下载转发ponytail的译文(来自帕兰映像)。

  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避免重定向

  再写入链接时,虽然”www. today-s-ooxx. com”和”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就不支持。

<!-- /content -->

分享到:
评论

相关推荐

    移动互联网服务优化

    在协议参数优化方面,内容中提到了调整TCP参数,例如关闭TCP快速回收、设置合理的初始重传超时时间、增大Socket buffer缓冲区、调整初始拥塞窗口大小等,这些都有助于改善页面加载速度,特别是在移动设备上,网络...

    网站性能及客户体验分析.ppt

    这些工具提供了优化指南,帮助开发者遵循雅虎的34条法则,以及Google的建议,以提升网页加载速度。此外,合理的缓存设置、文本压缩、减少DNS解析次数和优化CSS、JS文件等也是提升性能的有效策略。 总的来说,优化...

    做医院网站优化需要注意的细节,医疗seo必看.docx

    优化图片大小、使用CDN(内容分发网络)以及精简代码,都是提高网页加载速度的有效手段。快速的加载速度能提高用户体验,也有利于SEO。 7. **社交媒体整合**: 将医院的社交媒体平台链接到网站,可以增强品牌影响...

    SEO排名法则,全面解析,让你的首页排到TOP10

    3. **加载速度优化**:提高网站加载速度对于提升用户体验和SEO排名都至关重要。可以通过压缩图片文件、减少HTTP请求等方法来实现。 4. **社交媒体整合**:社交媒体平台是推广网站的好渠道。合理利用社交媒体可以增加...

    搜索引擎优化知识完全手册

    技术SEO关注网站的技术性能,如加载速度、移动友好性、可抓取性等。网站应使用响应式设计适应不同设备,确保快速加载,同时避免错误如死链和重复内容。 六、本地SEO 对于实体店或提供地域服务的企业,本地SEO尤为...

    基于matlab实现很多优化算法得平台运行,测试各种算法,优化算法得整体框架.rar

    在MATLAB环境中,优化算法是解决复杂问题的重要工具,它被广泛应用于工程、科学计算以及数据分析等多个领域。...对于想要深入研究优化算法或提升优化能力的工程师和研究人员来说,这是一个非常有价值的资源。

    计算机量化研究方法,第六版

    #### 三、经验法则 1. **Amdahl/Case规则**: 平衡的计算机系统大约需要1MB的主要内存容量和1兆比特/秒的I/O带宽,每MIPS的CPU性能。 - **解释**: 这个规则提供了一个基本的硬件配置建议,有助于构建一个均衡发展的...

    多核处理器中基于Radix-Join的嵌套循环连接优化.pdf

    Radix-Join算法则是一种基于位的分桶连接方法,通过将数据按位划分,以减少比较和数据传输,从而提高连接操作的速度。 描述中的关键词“Radix-Join”和“嵌套循环连接优化”表明文章关注的是如何利用Radix-Join算法...

    企业网站设计

    8. **网站性能优化**:通过图片压缩、缓存利用、代码精简等方式提升网站加载速度,以提升用户体验和搜索引擎排名。 9. **测试与维护**:网站上线前需要进行详尽的测试,包括功能测试、性能测试、兼容性测试等,以...

    如何从关键词中挖掘网站用户隐性搜索需求.docx

    - 页面设计也要注重用户体验,确保信息查找方便,页面加载速度快,界面清晰易懂。 4. **长尾关键词策略**: 扩展核心关键词的长尾词,如“河南破碎机厂家”、“第三代制砂机价格”等,这些长尾词能更精确地匹配...

    内存缓存技术在门户网站开发中的应用研究.pdf

    ### 内存缓存技术在门户网站开发中的应用研究 #### 一、引言 随着互联网技术的迅猛发展,用户对于网站访问速度的要求越来越高。对于门户网站这类高流量网站来说,如何提高响应速度成为了至关重要的问题。传统的...

    _基于CSS技术的网页设计应用研究.pdf

    整定算法通过调整比例、积分、微分三个参数来优化系统的响应。而Fuzzy-PI型模糊PID算法则侧重于消除控制系统中的静态误差,通常需要与积分差结合使用以提高控制精度。 5. 控制算法的输出量清晰处理:在模糊PID控制...

    近期SEO笔记整理

    快速的加载速度、易于导航的界面和高质量的内容都会影响用户的停留时间和跳出率,这些因素都间接影响SEO排名。 6. **外部链接**:高质量的外部链接,尤其是来自权威网站的,能提升网站的信誉和排名。然而,获取链接...

    单轴压缩仿真_单轴压缩_离散元单轴_离散元_源代码_PFC_

    本压缩包提供的源代码正是基于PFC的单轴压缩仿真代码,这使得用户能够自定义参数,如颗粒形状、尺寸、材料属性,以及加载速度和边界条件,进行定制化的模拟。通过运行这些代码,可以得到关于试样在压缩过程中的应力-...

    大规模并行处理机的并行程序设计

    优化技术如循环展开、向量化和缓存优化等,可以显著提升单个节点的计算速度。 #### 四、并行程序调试与测试 并行程序的调试是一个复杂的过程,涉及到定位错误、分析性能瓶颈和验证并行一致性。有效的调试策略包括...

    研究论文-毫米波雷达回波信号去噪系统设计

    这种芯片采用哈佛结构,有着专用的硬件乘法器和高效的指令集,能够对小波算法进行优化,进一步提升处理速度和效率。 以上内容总结了毫米波雷达回波信号去噪系统设计中涉及的若干关键技术点和实现方案,展示了现代...

    基于FPGA实现FIR数字滤波器的研究

    FPGA在实现FIR滤波器时,通常采用流水线结构,即将滤波器的计算过程分为多个阶段,每个阶段处理一部分输入数据,这样可以大大提高处理速度。FPDA(Finite Precision Data Arithmetic,有限精度数据算术)是FPGA实现...

    基于遗传算法和梯度下降的鸢尾花分类问题.zip

    遗传算法是模拟生物进化过程的一种全局优化方法,而梯度下降法则是一种在多维空间中寻找函数最小值的常用迭代算法,尤其适用于神经网络的权重更新。 首先,我们来详细了解一下遗传算法。遗传算法灵感来源于自然界中...

Global site tag (gtag.js) - Google Analytics