所以我刚刚下载了yslow for firebug,并查看了我正在构建的网站的结果。
我看到建议,例如,为我的静态组件使用ETags,无cookie域,并添加过期标题。
我在想,好吧我可以解决这些问题但是我可以先做一些其他优化,例如缓存数据库调用或类似的结果。
我不认为这个网站会有那么多的用途来保证YSlow的建议。
我知道在你知道你需要之前你永远不应该进行优化,但我认为ETag和expires标题之类的东西肯定只会在流量非常大的网站上发挥作用。
例如,如果我编写了一个糟糕的实现,每次请求对数据库进行5次(相对较小的)调用,YSlow告诉我我的14个图像不在无cookie域中,那么哪个应该首先解决两个优化问题吗?
答案 0 :(得分:5)
没有YSlow我们的.htaccess大师。但我最近建立了一个Joomla网站,并使用YSlow找到了改进的地方。您在上面询问的YSlow的两个区域 - “添加过期标题”和“配置实体标记(ETags)” - 我通过域的根目录上的.htaccess文件进行了解决。
雅虎表示:“网页越来越复杂,脚本,样式表,图片和Flash就越来越多。首次访问页面可能需要多次HTTP请求来加载所有组件。使用Expires头文件这些组件变得可缓存,这避免了后续页面视图上不必要的HTTP请求。过期标头通常与图像相关联,但它们可以并且应该在所有页面组件上使用,包括脚本,样式表和Flash。“
为了解决这个问题,我发现并将以下代码块添加到我的.htaccess文件中(注意:将OPENANGLEBRACKET更改为“<”并将CLOSEDANGLEBRACKET更改为“>”):
########## Begin - Expires Headers
#
OPENANGLEBRACKET IfModule mod_expires.c CLOSEDANGLEBRACKET
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/html "access plus 1 day"
ExpiresByType text/plain "access plus 1 week"
ExpiresByType video/x-flv "access plus 1 month"
OPENANGLEBRACKET /IfModule CLOSEDANGLEBRACKET
#
########## End - Joomla! core SEF Section
我决定删除所有Etags,它给了我A级,将其添加到我的.htaccess文件中:
########## Begin - Remove Etags
#
FileETag none
#
########## End - Remove Etags
对我的.htaccess文件的这两个更改给了我这两个YSlow类别的A等级。
答案 1 :(得分:4)
YSlow很适合检查用户看到的“用户体验”。其建议是帮助使页面显示以加快加载速度。例如。 14个图像到1个图像和喷精纯粹是一个视觉的东西。该规则是因为浏览器一次只能并行下载一些图像。
我总是首先解决后端优化,因为它们可以帮助您使网站可扩展,如果它变得那么大。
答案 2 :(得分:4)
修复分析所说的导致页面浏览速度下降最慢的内容。
请记住,无论你修复YSlow抱怨什么,都很可能会在以后再次帮助你,而数据库优化将是一项持续的任务。
即,如果您将图像分割到多个域并使其无cookie,那么当您添加更多图像时,它们应该在这些域上分割(希望自动)并且不需要再次努力。
此外,Expires标头会导致服务器上的请求级别降低(因为可以缓存响应),这将加快每个人的访问。
答案 3 :(得分:2)
请注意,YSlow无法看到您的后端代码,因此它只能根据浏览器与您网站的互动建议。您当然应该首先修复数据库调用。 YSlow关于多个请求的建议,gzip等非常可靠,但它永远告诉我使用内容交付网络 - 这对于一个小网站毫无意义。只是不要盲目地花费大量时间/金钱来推荐每一项建议,并且考虑到你所知道的并且YSlow没有。
答案 4 :(得分:1)
您完全正确,在应用程序代码中进行了优化,例如
会比YSlow建议提供更高的性能提升。
YSlow优化通常用于改善网站静态部分的性能,在进行任何调整之前,这些部分通常比动态部分的效果更好。
答案 5 :(得分:1)
请请不要使用Cookie和Expires作为您的静态内容。
它不仅对您有所帮助,还有助于我。
我在家使用较慢的互联网链接,144 Kbps。我经常将它加载到容量,下载更新或视频文件。这使得它的延迟时间可达800毫秒左右。
需要大量往返行程的网站,因为时间检查加载速度非常慢。使用Expires的网站可以快速正确加载,因为只有动态内容必须实际加载。
答案 6 :(得分:0)
后端代码通常比前端代码更快。尝试将外部资源(css背景图像,css文件和javascript文件)的数量保持在最低限度。
这将是imho最重要的优化。