优化以减少网站加载时间

16

有哪些重要的优化措施可以应用于网站,以减少加载时间?


2
我最喜欢的文章之一:http://www.alistapart.com/articles/sprites - Ally
14个回答

21

消除/最小化服务器端的瓶颈。为此,使用像Xdebug或Zend Debugger这样的分析器来查找应用程序执行昂贵和缓慢操作的位置。在可能的情况下实施缓存机制。使用OpCode Cache。如果仍然不够快,请考虑投资更多的CPU、内存或SSD硬盘(取决于您是CPU、IO还是内存受限)。

有关常规服务器/客户端优化,请参见YahooYSlow!用户指南

它基本上总结为以下内容:

  1. 最小化HTTP请求
  2. 使用内容传递网络
  3. 添加Expires或Cache-Control标头
  4. 压缩组件
  5. 将样式表放在顶部
  6. 将脚本放在底部
  7. 避免CSS表达式
  8. 使JavaScript和CSS外部化
  9. 减少DNS查找
  10. 压缩JavaScript和CSS
  11. 避免重定向
  12. 删除重复的脚本
  13. 配置ETags
  14. 使AJAX可缓存
  15. 使用GET进行AJAX请求
  16. 减少DOM元素数量
  17. 没有404错误
  18. 减小Cookie大小
  19. 将组件放在无cookie域中
  20. 避免过滤器
  21. 不要在HTML中缩放图像
  22. 使favicon.ico小且可缓存

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


3
请查看谷歌的PageSpeed,它是YSlow的一个很好的替代品/补充,也是一个Firebug插件。它可以发现一些YSlow无法发现的问题,反之亦然。 - Alex Weber
1
还有一件事:如果您控制服务器足够安装其他插件并具有足够的RAM,则使用内存会话。 memcache插件包括一个会话处理程序。 http://php.net/memcache - Powerlord
1
好的回答。所有这些内容都在这篇(优秀的)Yahoo文章中有更详细的解释:http://developer.yahoo.com/performance/rules.html - Tom Castle
1
Google Speed Tracer是另一个很好的工具,它是一个Chrome扩展程序,可以测量网站性能的许多不同方面:http://code.google.com/webtoolkit/speedtracer/ - Jason Hall

3

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


2

2
以下是一些“最佳实践”:
  • 缓存CSS、JavaScript、图片等。
  • 压缩Javascript文件。
  • gzip内容。
  • 尽可能将JavaScript文件链接、JavaScript代码和CSS文件链接放在页面底部。
  • 仅加载必要的内容。
  • 对于现有网站,在进行任何操作之前,请使用Firebug等工具确定瓶颈所在,正如其他人提到的YSlow(我强烈推荐这个工具)。

2
在优化时,有两个方面需要关注:
  • 服务器端:重要的是生成输出更快
  • 客户端:重要的是尽快获取所有需要显示的内容。

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


在服务器端,您通常会想要:

  • 进行性能分析,以确定哪些操作较慢
  • 优化SQL查询,并减少其数量
  • 使用缓存

如需更多信息,请参见我之前对此问题给出的答案:优化基于Kohana的网站的速度和可扩展性


在客户端上,最大的收益通常是通过以下方法实现的:

将以下文本从英语翻译成中文:
  • 减少HTTP请求的数量--最简单的方法是通过将多个文件合并为一个来减少JS/CSS/images文件的数量
  • 压缩CSS/JS/HTML,例如使用Apache的mod_deflate

关于这一点,在雅虎卓越表现上有很多很棒的东西:他们发布了许多良好的实践和工具,例如YSlow


2
我能想到的简单选项如下:
  1. 压缩 (x)html,使得文件可以更快地传输给用户
  2. 最小化 CSS
  3. 最小化 JS
  4. 尽可能使用缓存
  5. 使用内容分发网络
  6. 使用工具,例如 yslow 来识别瓶颈并提出进一步建议

2

一定要考虑缓存,因为与数据库的往返操作成本很高。同时,压缩JS。


2
安装Firebug和PageSpeed插件,遵循所有的PageSpeed指令(在可能的情况下),并且感到高兴。 http://code.google.com/intl/it/speed/page-speed/ 不管怎样,在我的经验中最重要的优化是将HTTP请求的数量减少到最低限度...

1

1

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

我喜欢/使用的功能:

  • 柔和、干净且易用的演示
  • 与另一个页面进行比较。看到您的朋友/竞争对手在哪里真的很有趣。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接