所以我刚刚为firebug下载了yslow,并查看了我正在构建的网站的结果.
我看到建议,例如,使用ETags,我的静态组件的无cookie域,并添加过期标头.
我在想,好吧我可以去解决这些问题但是我可以先做一些其他的优化,例如缓存数据库调用的结果或类似的东西.
我不认为这个网站会得到"那么多"的使用来保证YSlow的建议.
我知道你应该在你知道自己需要之前不进行优化,但我认为像ETags和expires标题这样的东西肯定只会在流量非常大的网站上发挥作用.
例如,我写了一个糟糕的实现,每次请求对数据库进行5次(相对较小的)调用,而YSlow告诉我我的14个图像不在无cookie域中,那么这两个优化中的哪一个应该先解决?
没有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)是一种机制网络服务器,浏览器使用它来确定浏览器缓存中的组件是否与原始服务器上的组件匹配.由于ETag通常使用使其成为特定服务器托管唯一的属性构建当一个浏览器从一个服务器获取原始组件并稍后尝试在另一个服务器上验证该组件时,标记将不匹配.
我决定删除所有Etags,它给了我一个A级,将它添加到我的.htaccess文件中:
########## Begin - Remove Etags # FileETag none # ########## End - Remove Etags
对我的.htaccess文件的这两个更改给了我这两个YSlow类别的A等级.