由于加载了大量图片,我的网站有时加载速度有点慢。由于所有png叠加和图标,我实际上在我的主页上有61张图像。我考虑使用精灵或图像地图,但我真的不喜欢这样做。我知道我的服务器只能有2个请求,所以如果我将图像托管在其他地方,它会加快时间,但是,这可靠吗? Pingdom工具说我的网站有超时“超时”。我正在寻找一种解决方案:
A)在不同的服务器上传播我的图像(但是我想要它在可靠的服务器上(我的!)
B)仅使用少量图像精灵或其他css技术
C)???有什么想法吗?
提前致谢。
更新1:我创建了6个子域,并在这些子域中拆分了所有图像。您可以看到包含托管在一个文件夹here中的所有图片的普通网站,并且您可以在6个子域here中看到包含图片的同一网站。** 如您所见,跨子域的图像网站加载WAYY较慢。这是为什么?我不明白!
更新2:我打电话给我的托管公司,他们似乎认为子域解决方案无法解决问题,只会降低速度,因为每个子域都没有唯一的IP。我的服务器正在经历高负载,因此解释了一些延迟,但仍然存在此图像问题。他说我最好的就是使用亚马逊服务,这就是我现在要调查的内容。
我仍然遇到问题的理解是某些图像文件的延迟。如果您查看firebug中的页面加载结果(请参阅下面的BalusC答案),则需要花费大量的等待时间来加载某些图像。我想知道为什么。
答案 0 :(得分:3)
我读过的关于这个主题的最好的文章之一是:
你可能不喜欢制作精灵(我可以联系),但最终这可能是你能做的最好的事情。跨(子)域的传播请求是好的,但每个请求都很昂贵(上传速度通常是有线调制解调器连接的限制因素)并且鉴于大多数网站的用户都有空缓存体验,你真的想要最小化请求的数量。
我没有看到你的网站,但如果你可以通过使用精灵减少一半的请求数量,我的猜测是,这将比任何CDN或子域技巧在更多平台上提供更大的性能提升。 (有关数字和图表,请参阅文章。)
答案 1 :(得分:2)
您应该使用多个子域,因为每个子域都被视为单独的域,因此可以同时提出更多请求。
子域可以具有指向相同目录images /
的(物理)符号链接答案 2 :(得分:2)
亚马逊提供CDN服务: http://aws.amazon.com/cloudfront/ 您可以在那里托管图像,只需支付使用的带宽。亚马逊AWS传统上相当可靠。您可以命名其他子域来绕过HTTP 1.1 2连接限制,因为@dusoft也提到了。
答案 3 :(得分:2)
根据您的更新:
我创建了6个子域,并在这些子域中拆分了所有图像。您可以在此处看到包含托管在一个文件夹中的所有图像的普通网站,您可以在此处看到包含6个子域的图像的同一网站。
如您所见,跨子域的图像网站加载WAYY较慢。这是为什么?我不明白!
我查看了network panel的Firebug:
这是“正常”网站:
这是“改进的”网站:
明显更好(更多的同步请求),但是有很多大的绿色栏用于“连接”(大约9秒),浏览器正在等待与服务器连接。因此,问题更多在服务器中。看起来Keep-Alive
出现了问题,并且Apache HTTPD服务器配置了KeepAliveTimeout 10
左右。 尝试以Keep-Alive
为这些虚拟主机禁用KeepAlive off
,看看会发生什么。
答案 4 :(得分:0)
Google有一个名为Page Speed的工具。从他们的描述:
Page Speed对a执行多项测试 站点的Web服务器配置和 前端代码。这些测试基于 关于一套已知的最佳实践 增强网页性能。
页面速度为每个页面打分,并提供有关如何提高其性能的建议。不确定此工具是否可以帮助您解决有关等待时间过长的具体问题,但可能值得一试。
他们在性能最佳实践方面也有一些docs,例如最小化往返时间。