为了减少加载时间,可以对网站进行哪些重要优化?减少网站加载时间的优化
回答
删除/最小化服务器端的瓶颈。为此,请使用Xdebug或Zend Debugger之类的分析器来查找应用程序执行的代价高昂且运行缓慢的情况。尽可能实现缓存。使用OpCode缓存。如果这仍然不够快,考虑投资更多的CPU或RAM或SSD(取决于您是CPU,IO还是内存绑定)
对于一般服务器/客户端优化,请参阅Yahoo YSlow! User Guide。
它基本上概括起来到:
- 尽量减少HTTP请求
- 使用内容传送网络
- 添加过期或者缓存控制头
- Gzip已零部件
- 将样式表放在顶部
- 将脚本放在最下面
- 避免CSS表达式
- 使JavaScript和CSS外部
- 减少DNS查找
- 压缩JavaScript和CSS
- 避免重定向
- 删除重复的脚本
- 配置的ETag
- 让AJAX可缓存
- 使用GET进行AJAX请求
- 减少DOM元素的数量
- 没有404
- 减少饼干大小
- 使用Cookie的免费域名为组件
- 避免使用滤镜
- 不要放大图像在HTML
- 让小的favicon.ico并且可缓存
另请参见下面的评论作出了贡献,因为它们包含一些一其他用户的附加有用信息。
还检查了谷歌”的PageSpeed HTTP:/ /code.google.com/speed/page-speed/是YSlow的一个很好的替代/补充,也是一个Firebug插件。它捕捉到YSlow不能做的一些事情,反之亦然。 – 2010-03-01 22:29:16
还有一件事:如果您控制足够的服务器来安装额外的插件并具有足够的RAM,则使用内存中会话。 memcache插件包含一个会话处理程序。 http://php.net/memcache – Powerlord 2010-03-01 22:31:47
很好的答案。所有这些事情都在这个(优秀的)雅虎文章中有更详细的解释:http://developer.yahoo.com/performance/rules.html – 2010-03-01 22:34:20
这里有一些 “最佳实践” 的事情:
- 缓存CSS,JavaScript,图片等
- 缩小JavaScript文件。
- gzip内容。
- 尽可能在页面底部放置指向JavaScript文件,JavaScript代码和CSS文件的链接的链接。
- 只加载需要的东西。
- 对于现有的网站,在你做任何这些事情之前,要确定你的瓶颈在哪里,像Firebug这样的工具,以及其他人提到的YSlow(我强烈推荐这个工具)。
有两个方面优化的时候,你可以关心,:
- 服务器端:重要的是产生的输出中更快
- 客户端:重要的是让所有的有显示得更快。
注意:作为开发人员,我们经常首先考虑优化服务器端......在大多数情况下,这只占页面加载时间的不到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。
我能想到的最简单的选项是:
- Gzip已(X)HTML,所以压缩文件应该更迅速地向用户
- 到达缩小的CSS
- 缩小的JS
- 使用缓存尽可能
- 使用内容传递网络
- 使用工具,如yslow识别瓶颈和进一步的建议
@bn的确的编辑,以纠正。谢谢=] – 2010-03-01 23:11:57
肯定想看看缓存,因为往返数据库是昂贵的。 also,minify JS
要减少网络流量,可以缩小静态文件(如CSS和Javascript),并对生成的内容使用gzip压缩。您也可以尝试使用optipng等工具来缩小图像的大小。
但是,要采取的第一步是实际分析需要花费的时间 - 无论是通过网络发送位,还是实际生成要发送的内容。如果需要一分钟来生成每个HTML页面,那么将CSS文件缩小10%是没有意义的。
第一个优化是:决定它是否缓慢,如果不是,请不要打扰。
这比听起来更棘手,因为它不像测试桌面应用程序或游戏。如果在目标硬件上播放游戏,游戏速度会很慢,帧速率太低。这很容易衡量。
一个网站更棘手,因为作为开发人员,您可能正在使用本地测试系统和非常快速的网络。即使使用登台/系统测试服务器,您仍可能仍在本地网络中。即使你的生产服务器很可能在同一大陆。
对于很多用户来说,情况可能并非如此。
因此其存在的选项有:
- 找出通过询问用户,是否觉得它是慢
- 模拟高延迟的环境和自己(或您的QA团队)测试
- 猜测
后者不建议。
一个比你的雅虎网站性能书(这是一本你可以购买的书)更不用提的很多HTTPS选项。大多数处理重要数据的Web应用程序主要或完全通过HTTPS运行,这更改了游戏规则。记住要启用所有测试。
安装萤火虫和插件的PageSpeed如下 所有的PageSpeed指令(至可能的),而且要快乐 http://code.google.com/intl/it/speed/page-speed/
反正在我的经验中最重要提示优化是HTTP请求的数量减少到最低限度?
不要在代码中使用空格。
我们最近在我们的网站上做了这个。在这里,我们列出9项技术,似乎有与至少难度最高的影响:http://mentormate.com/blog/easy-ways-speed-website-load-time/
我写了一些东西,请参见:
前面已经提到的,你可以使用YSlow的或的PageSpeed火狐延期。但是您也可以使用GTmetrix,这是一款使用这两种工具扫描页面的在线服务。
特点我喜欢/用途:
- 柔软,清洁,可用presention
- 与其他网页进行比较。看看你的朋友/竞争者在哪里真的很有趣。
(顺便说一句,我没有相关gtmetrix!)
- 1. 图像优化减少加载时间?
- 2. 减少网页的加载时间
- 3. 如何减少我的网站的javascript/jquery/ajax加载时间?
- 4. 缩小/缓存后减少网站的加载时间
- 5. 减少wordpress中的网站加载时间
- 6. 我会如何减少wordpress网站的加载时间?
- 7. 有效减少网站加载时间[SEO的角度来看]
- 8. 减少PhoneGap加载时间
- 9. 减少网站等候时间
- 10. 减少加载UIView的时间延迟
- 11. 如何减少SSH2的“加载”时间
- 12. 我的WordPress的网站需要很长时间来加载如何减少它?
- 13. 为网站加载最优化测试
- 14. 如何减少使用WKWebView的应用程序网站加载时间?
- 15. 网站优化减少Img对象请求
- 16. 如何从网站加载图片时减少内存?
- 17. 使用pdf.js减少PDF加载时间
- 18. 减少图像加载时间?
- 19. 如何减少Docx4j加载时间
- 20. Mysql查询减少加载时间
- 21. 在日历上减少加载时间
- 22. 脚本加载时间减少
- 23. 减少小程序加载时间
- 24. 减少VS201X构建/加载时间
- 25. 减少图像加载时间
- 26. 网站加载时间
- 27. Wordpress网站加载时间
- 28. 可以Javascript错误减缓网站的加载时间
- 29. .woff在优化的网站上导致8-12秒的加载时间
- 30. 如何减少社交网络元素加载时间?
我所有的时间最爱http://www.alistapart.com/articles/sprites – Ally 2010-03-01 22:29:02