【问题标题】:YSlow recommendations. How necessary are they?YSlow 建议。它们有多必要?
【发布时间】:2010-11-11 15:43:50
【问题描述】:

所以我刚刚下载了yslow for firebug 并查看了我正在构建的网站的结果。

我看到了一些建议,例如,为我的静态组件使用 ETag、无 cookie 域以及添加过期标头。

我在想,好吧,我可以着手解决这些问题,但我更有可能先做一些其他优化,例如缓存来自数据库调用的结果或类似的东西。

我认为该网站不会获得“那么多”的使用量来保证 YSlow 的建议。

我知道在你知道你需要优化之前你永远不应该优化,但我认为像 ETags 和 expires headers 这样的东西肯定只会在流量非常大的网站上发挥作用。

例如,如果我编写了一个糟糕的实现,每个请求对数据库进行 5 次(相对较小)调用,并且 YSlow 告诉我我的 14 个图像不在无 cookie 的域中,那么其中哪一个应该先解决两个优化问题?

【问题讨论】:

    标签: optimization yslow http-request


    【解决方案1】:

    在没有 YSlow 我们的 .htaccess 大师。但我最近建立了一个 Joomla 网站并使用 YSlow 来寻找改进的地方。您在上面询问的 YSlow 的两个区域——“添加过期标头”和“配置实体标签 (ETags)”——我通过域根目录上的 .htaccess 文件进行了处理。

    添加过期标题

    Yahoo 说:“网页变得越来越复杂,其中包含更多脚本、样式表、图像和 Flash。首次访问页面可能需要多个 HTTP 请求来加载所有组件。通过使用 Expires 标头这些组件变为可缓存的,从而避免了后续页面查看时不必要的 HTTP 请求。Expires 标头通常与图像相关联,但它们可以而且应该用于所有页面组件,包括脚本、样式表和 Flash。”

    为了解决这个问题,我找到了以下代码块并将其添加到我的 .htaccess 文件中(注意:将 OPENANGLEBRACKET 更改为“”):

    
        ########## 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)

    Yahoo 说:“实体标签 (ETags) 是一种机制 web 服务器和浏览器用来确定浏览器缓存中的组件是否与源服务器上的组件匹配。由于 ETags 通常使用使它们对托管站点的特定服务器,当浏览器从一台服务器获取原始组件并随后尝试在另一台服务器上验证该组件时,标记将不匹配。"

    我决定通过将其添加到我的 .htaccess 文件中来删除所有给我 A 级的 Etag:

    
        ########## Begin - Remove Etags
        #
        FileETag none
        #
        ########## End - Remove Etags
    

    对我的 .htaccess 文件的这两项更改为我提供了这两个 YSlow 类别的 A 成绩。

    【讨论】:

      【解决方案2】:

      YSlow 可以很好地检查您的用户所看到的“用户体验”。它的建议是帮助页面显示更快地加载。例如。 14 图像到 1 图像和精灵纯粹是视觉上的事情。规则是因为浏览器在任何时候只能并行下载几张图片。

      我总是首先解决后端优化问题,因为它们可以帮助您使您的网站具有可扩展性,如果它变得那么大的话。

      【讨论】:

      • 图像精灵不只是让页面看起来加载得更快,它实际上会加载得更快(既因为并行下载,也因为精灵实际上会占用由于压缩,总尺寸较小)。
      【解决方案3】:

      修复您的分析所说的导致页面浏览量最慢的任何一个。

      请记住,无论您修复了 YSlow 所抱怨的问题,都可能在以后提供帮助,而无需您再次执行此操作,而数据库优化将是一项持续的任务。

      即,如果您将图像拆分到多个域并使其无 cookie,那么当您添加更多图像时,它们应该在这些域中拆分(希望自动)并且不再需要努力。

      此外,Expires 标头会导致服务器上的请求级别较低(因为可以缓存响应),这将加快每个人的访问速度

      【讨论】:

        【解决方案4】:

        请记住,YSlow 无法看到您的后端代码,因此它只能根据浏览器与您网站的交互来提供建议。您当然应该首先修复您的数据库调用。 YSlow 关于多个请求、gzip 等的建议非常可靠,但它总是告诉我使用内容交付网络——这对于小型站点来说毫无意义。只是不要盲目地在每条建议上花费大量时间/金钱,并考虑你所知道的而 YSlow 不知道的因素。

        【讨论】:

          【解决方案5】:

          您说得非常正确,在应用程序代码中进行了优化,例如

          • 优化慢速数据库查询
          • 缓存频繁执行的查询
          • 常用组件的组件级缓存
          • 昂贵的应用程序代码的一般速度优化

          在大多数情况下,它会给您带来比 YSlow 建议更高的性能提升。

          YSlow 优化通常用于提高网站静态部分的性能,在进行任何调整之前,静态部分的性能通常已经优于动态部分。

          【讨论】:

            【解决方案6】:

            请,对您的静态内容不使用 cookie 和 Expires。

            它不仅能帮助你,还能帮助

            我在家里使用较慢的 Internet 链接,144 Kbps。我经常将其加载到容量,下载更新或视频文件。这使得它的延迟高达 800 毫秒左右。

            需要大量往返以进行 If-Modified-Since 时间检查的网站加载速度非常慢。使用 Expires 的网站可以快速正确加载,因为只有动态内容需要实际加载。

            【讨论】:

              【解决方案7】:

              后端代码通常比前端代码更快。尽量减少外部资源(css 背景图片、css 文件和 javascript 文件)的数量。

              恕我直言,这将是最关键的优化。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-03-30
                • 1970-01-01
                • 2018-04-13
                • 1970-01-01
                • 2021-10-18
                • 1970-01-01
                相关资源
                最近更新 更多