优化以减少网站加载时间

时间:2010-03-01 22:18:52

标签: php javascript html css optimization

可以对网站进行哪些重要优化以减少加载时间?

14 个答案:

答案 0 :(得分:21)

删除/最小化服务器端的任何瓶颈。为此,请使用Xdebug或Zend Debugger等分析器来查找应用程序执行昂贵且运行缓慢的位置。尽可能实现缓存。使用OpCode缓存。如果这仍然不够快,可以考虑投资更多CPU或RAM或SSD(取决于您是CPU,IO还是内存限制)

对于常规服务器/客户端优化,请参阅Yahoo YSlow! User Guide

它基本上总结为:

  
      
  1. 最小化HTTP请求
  2.   
  3. 使用内容分发网络
  4.   
  5. 添加过期或缓存控制标头
  6.   
  7. Gzip Components
  8.   
  9. 将StyleSheets放在顶部
  10.   
  11. 将脚本放在底部
  12.   
  13. 避免使用CSS表达式
  14.   
  15. 使JavaScript和CSS外部
  16.   
  17. 减少DNS查找
  18.   
  19. 缩小JavaScript和CSS
  20.   
  21. 避免重定向
  22.   
  23. 删除重复的脚本
  24.   
  25. 配置ETags
  26.   
  27. 制作AJAX Cacheable
  28.   
  29. 使用GET进行AJAX请求
  30.   
  31. 减少DOM元素的数量
  32.   
  33. 没有404s
  34.   
  35. 减少Cookie大小
  36.   
  37. 为组件使用Cookie-Free Domains
  38.   
  39. 避免过滤器
  40.   
  41. 不要在HTML中缩放图像
  42.   
  43. 制作favicon.ico小巧且可缓存
  44.   

另请参阅下面提供的评论,因为它们包含其他用户的一些其他有用信息。

答案 1 :(得分:3)

在首先尝试任何优化之前,您需要能够进行分析,获取Firefox的FireBug。然后,您可以运行一些分析,告诉您使用YSlow做什么。您应该做的基本事项列在here

答案 2 :(得分:2)

以下是一些“最佳实践”的事情:

  • 缓存CSS,JavaScript,图像等
  • 缩小Javascript文件。
  • gzip内容。
  • 尽可能在页面底部放置指向JavaScript文件,JavaScript代码和CSS文件链接的链接。
  • 仅加载必要的内容。
  • 对于现有网站,在您执行任何此类操作之前,请先确定使用Firebug等工具以及其他人提及YSlow(我强烈推荐此工具)的瓶颈所在。

答案 3 :(得分:2)

在优化时,您可以关注两个方面:

  • 服务器端:重要的是产生更快的输出
  • 客户端:重要的是让所有必须更快地显示。

注意:作为开发人员,我们通常会首先考虑优化服务器端...在大多数情况下,这只占页面加载时间的不到10%!


在服务器端,您通常希望:

  • 个人资料,以确定什么是长的
  • 优化您的SQL查询并减少其数量
  • 使用缓存

有关更多信息,您可以查看我前一段时间给出的答案:Optimizing Kohana-based Websites for Speed and Scalability


在客户方面,最大的收益通常是通过以下方式实现:

  • 减少HTTP请求的数量 - 通过将多个文件合并为一个来减少JS / CSS /图像文件数量的最简单方法
  • 压缩CSS / JS / HTML,例如使用Apache的mod_deflate

关于这一点,Yahoo's Exceptional Performance上有很多很棒的东西:他们发布了很多good pratices和工具,例如yslow

答案 4 :(得分:2)

我能想到的简单选项是:

  1. Gzip(x)html,因此压缩文件应该更快地到达用户
  2. 缩小CSS
  3. 缩小JS
  4. 尽可能使用缓存
  5. 使用内容分发网络
  6. 使用yslow等工具来识别瓶颈和进一步的建议

答案 5 :(得分:2)

肯定想看看缓存,因为到DB的往返是昂贵的。 另外,缩小JS

答案 6 :(得分:2)

安装firebug和pagespeed插件 跟随所有的pagespeed指令(直到可能)并且开心 http://code.google.com/intl/it/speed/page-speed/

无论如何,根据我的经验,最重要的优化是将HTTP请求的数量减少到最少......

答案 7 :(得分:2)

我们最近在我们的网站上做了这个。在这里,我们概述了九种技术,这些技术似乎影响最小,难度最小:http://mentormate.com/blog/easy-ways-speed-website-load-time/

答案 8 :(得分:1)

第一个优化是:确定它是否缓慢,如果不是,请不要打扰。

这比听起来更棘手,因为它不像测试桌面应用或游戏。如果在目标硬件上播放时游戏速度很慢,则帧速率太低。这很容易衡量。

网站比较棘手,因为作为开发人员,您可能正在使用具有非常快速网络的本地测试系统。即使您使用登台/系统测试服务器,您可能仍在本地网络上。甚至你的生产服务器也很可能在同一个大陆上。

对于很多用户来说,情况可能并非如此。

因此存在的选项是:

  • 通过询问您的用户,他们是否觉得它很慢来了解
  • 模拟高延迟环境并自行测试(或您的QA团队)
  • 臆测

不建议使用后者。

一个选项,雅虎网站的性能预订(是的,你可以购买的书)并没有提到很多是HTTPS。处理重要数据的大多数Web应用程序大部分或全部通过HTTPS运行,这会更改游戏规则。记得在启用它的情况下进行所有测试。

答案 9 :(得分:1)

我写了一些关于的内容,请参阅:

Google page speed test optimization

答案 10 :(得分:1)

如前所述,您可以使用Yslow或PageSpeed firefox扩展。但您也可以使用GTmetrix这一在线服务,使用这两种工具扫描您的网页。

我喜欢/使用的功能:

  • 柔软,干净,可用的演示
  • 与其他页面进行比较。看到你的朋友/竞争对手在哪里真的很有趣。

(顺便说一句,我与gtmetrix无关!)

答案 11 :(得分:0)

为了减少网络流量,您可以缩小静态文件,例如CSS和Javascript,并对生成的内容使用gzip压缩。您也可以尝试使用optipng等工具来缩小图像的大小。

然而,要采取的第一步是实际分析所有时间的内容 - 无论是通过网络发送比特,还是实际生成要发送的内容。如果生成每个HTML页面花费一分钟,那么将CSS文件缩小10%就没有意义了。

答案 12 :(得分:0)

不要在代码中使用空格。

答案 13 :(得分:-3)

负载平衡有助于减少巨大的加载时间。