我有一个网站,其中所有网页都有很多图片。每个图像都是由PHP动态生成的(我的意思是img标签的src =“”属性类似于“/image.php?id=4553”)。
我正在正确控制缓存以加快相同图像的加载次数,并且加载单个图像所需的时间非常快。问题是前5到6张图像是在页面加载的同时加载的,其他图像是在稍后加载MANY SECONDS(5-10-15秒后)。 Firebug告诉我,问题是由于浏览器执行的请求排队以限制与服务器的同时连接。
当我发送页面的HTML时,我尝试发送“Connection:Keep-Alive”标题,但可能还不够!
任何帮助?
我知道有一些jQuery插件,例如延迟加载,只有当它们在视口中可见时才加载图像。这将是一个很好的“解决方法”,但我想知道是否有任何正确的方法来控制这种类型的图像加载。
非常感谢。
答案 0 :(得分:4)
Firebug很好地总结了这个问题。浏览器一次只能从域中加载x
个数量的资源。 x
通常大约为8,但这可能因浏览器而异,用户可以在其设置中进行更改。解决此问题的唯一方法是让浏览器从不同的域(子域计为不同的域)下载资源,这样可以同时下载更多的资源。您可以通过欺骗浏览器认为它是从不同的域下载来实现这一点,使用.htaccess和mod_rewrite从虚拟子域下载图像,实际上是从同一域下载的。这样您就可以一次下载更多的分配资源。