【问题标题】:Will my site load faster if the image is on the other domain?如果图像在另一个域上,我的网站加载速度会更快吗?
【发布时间】:2012-04-12 21:39:15
【问题描述】:

我想知道如果我用来在我的 wordpress wp-content-uploads 上上传的图片现在将存储在我安装的完全不同的域(我可以控制)中,我的网站是否会更快地加载图片上传服务,如 flickr 或任何用于上传服务的网站。

因为当我在 http://gtmetrix.com 上执行测试时,我的页面速度为 93%,而 Yslow 仅为 72%

http://gtmetrix.com/reports/applesiam.com/rF12jFmv

我真的认为我的页面加载缓慢是因为它说

Page load time: 14.54s
Total page size: 4.35MB
Total number of requests: 169

谢谢

【问题讨论】:

  • 真的很抱歉,我以为我确实去了 wordpress.stackexchange.com。不是想在这里发帖:/

标签: performance image browser


【解决方案1】:

大概吧。

大多数浏览器会限制对每个域的并发请求数,因此使用多个域可以让浏览器同时发出更多请求。这应该会加快页面的呈现速度。

但是,如果从您的域中获取图像的速度明显慢于从原始图像中获取图像,则更改不会提高加载速度。

【讨论】:

  • 感谢您的出色回答。如果它是同一个域但我在不同的目录中使用它怎么办?这会有所帮助吗?
  • 否 - 不同的目录无济于事,因为它是浏览器查看的域。
【解决方案2】:

我认为在另一个主机名上托管您的图片不会对您的网站性能产生如此大的影响。

网站速度很慢,因为页面太大,并且有很多第三方组件 - 这个瀑布会给你一些想法 -

http://www.webpagetest.org/result/120411_BG_b66024d1dda2429676d1e646e4b23a86/

看看如何减少组件的数量。

更新:

认真查看组件的数量和它们的来源 - 在页面上的 195 个资源中,只有 31 来自 applesiam.com

【讨论】:

    【解决方案3】:

    它会更快。但是,从浏览器到域的同时连接数通常限制为 4-6。 您可以通过为您的静态内容创建一堆子域别名来规避此限制,它们都指向同一个 IP。喜欢

    s[1-5].yourdomain.com -> same IP
    

    然后从不同的域访问您的图像,浏览器将并行加载它们。

    更新

    更彻底地查看您的网站,您的网站的响应速度很慢。

    请求http://applesiam.com/wp-content/themes/volt/images/social_sprite_32.png 会返回 HTTP 304(未修改),但这需要 824 毫秒(使用 Firebug 测试)。距离地球另一端大约 100 毫秒。

    我为此图像做了一些 ApacheBench 测试。

    10 个并发请求:

    » ab -n 10 -c 10 http://applesiam.com/wp-content/themes/volt/images/social_sprite_32.png
    
    Percentage of the requests served within a certain time (ms)
      50%   1683
      66%   1685
      75%   1701
      80%   1710
      90%   1710
      95%   1710
      98%   1710
      99%   1710
     100%   1710 (longest request)
    

    20 个并发请求:

    » ab -n 20 -c 20 http://applesiam.com/wp-content/themes/volt/images/social_sprite_32.png
    
    Percentage of the requests served within a certain time (ms)
      50%   2272
      66%   2899
      75%   2910
      80%   2974
      90%   2982
      95%   2985
      98%   2985
      99%   2985
     100%   2985 (longest request)
    

    同时请求的数量翻倍几乎使响应时间增加了一倍,这意味着您的服务器无法处理中等数量的请求。您应该检查您的服务器是否存在瓶颈(CPU、RAM、网络、Web 服务器配置)。

    【讨论】:

    • 2 是 IE6 的限制(也是 HTTP RFC 指定的),但现在大多数浏览器支持每个主机名 4 或 6 个连接(请参阅 browserscope.org/?category=network&v=top
    • 是的,Firefox 将其设置为 6。更新了答案。
    猜你喜欢
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 2012-02-27
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    相关资源
    最近更新 更多