6

由于加载图像的数量,我的网站有时加载速度有点慢。由于所有 png 覆盖和图标,我的主页上实际上有 61 张图片。我考虑过使用精灵或图像映射,但我真的不想这样做。我知道我的服务器只能有 2 个请求,所以如果我将图像托管在其他地方,它会加快时间,但是,这可靠吗?Pingdom 工具说我的网站“超时”。我正在寻找一种解决方案,可以:

A)将我的图像分散在不同的服务器上(但缺点是我希望它在可靠的服务器上(我的!)

B) 仅使用少量图像精灵或其他 css 技术

C) ???有任何想法吗?

提前致谢。

更新 1:我创建了 6 个子域并将我的所有图像拆分到这些子域中。您可以在此处查看所有图像托管在一个文件夹中的普通站点,您可以在此处查看包含跨 6 个子域的图像的同一站点。** 如您所见,跨子域图像的站点加载速度较慢。这是为什么?我不明白!

更新2:我打电话给我的托管公司,他们似乎认为子域解决方案不能解决问题,只会减慢速度,因为每个子域没有唯一的IP。我的服务器负载很高,这解释了一些滞后,但仍然存在这个图像问题。他说我最好的方法是使用亚马逊服务,所以这就是我现在要调查的内容。

我仍然无法理解的是某些图像文件的滞后。如果您在 firebug 中查看页面加载结果(请参阅下面的 BalusC 答案),加载某些图像需要很长的等待时间。我想知道为什么。

4

5 回答 5

3

我读过的关于这个主题的最好的文章之一是:

优化页面加载时间

你可能不想制作精灵(我可以理解),但最终这可能是你能做的最好的事情。跨(子)域传播请求很好,但每个请求都很昂贵(上传速度通常是有线调制解调器连接的限制因素),并且鉴于大多数站点的用户都有空缓存体验,你真的想最小化发出的请求数。

我还没有看过你的网站,但是如果你可以通过使用 sprite 将请求数量减少一半,我猜这将比任何 CDN 或子域技巧在更多平台上给你带来更大的性能提升。(有关一些数字和图表,请参阅文章。)

于 2010-02-20T00:04:55.613 回答
2

您应该使用多个子域,因为每个子域都被视为单独的域,因此可以同时进行更多请求。

子域可以具有指向同一目录 images/ 的(物理)符号链接

于 2010-02-19T23:51:49.683 回答
2

亚马逊提供 CDN 服务: http ://aws.amazon.com/cloudfront/ 您可以在那里托管图像并且只需为使用的带宽付费。亚马逊 AWS 传统上相当可靠。正如@dusoft 提到的那样,您可以命名其他子域以绕过 HTTP 1.1 2 连接限制。

于 2010-02-19T23:56:07.707 回答
2

根据您的更新:

我创建了 6 个子域并将我的所有图像拆分到这些子域中。您可以在此处查看所有图像托管在一个文件夹中的普通站点,您可以在此处查看包含跨 6 个子域的图像的同一站点。

如您所见,具有跨子域图像的站点加载 WAYY 较慢。这是为什么?我不明白!

我检查了Firebug网络面板

这是“正常”网站:

替代文字
全图在这里

这是“改进”的网站:

替代文字
全图在这里

它明显更好(同时请求更多),但是“正在连接”(大约 9 秒)有很多大的绿色条,浏览器正在等待与服务器连接。因此,问题更多出在服务器上。看起来好像有问题,Keep-Alive并且 Apache HTTPD 服务器配置了KeepAliveTimeout 10左右。尝试禁用Keep-Alive这些虚拟主机KeepAlive off,看看会发生什么。

于 2010-02-20T05:23:44.473 回答
0

Google 有一个名为Page Speed的工具。根据他们的描述:

Page Speed 对站点的 Web 服务器配置和前端代码执行多项测试。这些测试基于一组已知的提高网页性能的最佳实践。

Page Speed 对每个页面进行评分,并就如何提高其性能提供建议。不确定此工具是否可以帮助您解决有关漫长等待时间的具体问题,但可能值得一试。

他们还有一些关于性能最佳实践的文档,例如最小化往返时间。

于 2010-02-21T21:44:07.050 回答