如果不同子域上的图像/脚本/样式,客户端性能会提高吗?

时间:2009-10-26 01:24:21

标签: c# asp.net performance client-side

我有专门针对静态内容的域名,因此Cookie不会随着对images / scripts / css的请求一起传播。现在,我想我已经读到大多数浏览器只为每个域/子域打开一个下载线程,因此如果在同一个域上,则不能并行下载不同的静态内容。如果我在script.mycdn.com中放置脚本,在css.mycdn.com中放置样式,在images.mycdn.com中放置图片,它会对浏览器产生影响吗?是否允许浏览器同时下载图像作为脚本和样式?

mycdn.com 当然是一个名称:)

谢谢! 安德烈

3 个答案:

答案 0 :(得分:2)

据我了解,浏览器每个主机(服务器)最多可同时连接两个连接。因此,在这样的多个服务器上分配资产确实应该允许浏览器并行下载它们。

答案 1 :(得分:0)

尝试时我会非常谨慎。可能是因为某些浏览器可能会加载它更快。但另一方面,你会遇到很多问题。

由于跨站点脚本或其他保护机制(如IE中的InPrivate过滤),浏览器可能根本不会加载来自不同域的内容。当然,服务器必须处理更多开放的保持连接。

当然,这样做会使受到自身连接速度限制的所有人(稍微)加载速度较慢(因为会有更多和更长的转移)。

答案 2 :(得分:0)

大多数浏览器针对静态资产为每个域同时发出请求。较早的浏览器(如IE6-7和Firefox 2)每个域同时发出2个请求,而较新的浏览器(如Firefox 3)并行下载4-6个资源。通过禁用资产主机上的cookie,您还将减少发送给客户端的数据量。

就资产主机的数量而言,您不需要太多,因为每个主机都需要额外的DNS查找。 This yahoo research article建议使用至少两个且不超过四个不同的资产主机。

请记住,下载脚本是阻止操作(即它们阻止其他资源并行下载),因此您需要尽最大努力减少下载的javascript数量,并可能将其移至页面底部。可能的。