有什么更好的?更多的HTTP请求=更少的数据传输还是更少的HTTP请求=更多的数据传输?

| 诸如Facebook之类的网站使用“懒惰”加载js。 当您不得不考虑到我有一台服务器,流量很大时。 我很感兴趣-哪个更好? 当我一次执行更多HTTP请求时-页面加载速度变慢(由于限制(一次2个请求)) 当我对所有代码执行一个HTTP请求时-流量(GB)变高,并且安装停止了更多时间。但是,我们的页面加载速度会变慢。 结果更快?     
已邀请:
        更少的请求!这是我们合并JS文件,CSS文件,使用图像精灵等的原因。您看到的Web问题不是速度或服务器或浏览器处理问题。最大的瓶颈是延迟!您应该查找Steve Souders的演讲。     
        问题比这更加细微。 如果将脚本标签放置在页面底部以外的任何位置,则将减慢页面渲染速度,因为浏览器在遇到脚本标签时无法发挥很多作用,其他人则下载并执行它。因此,如果脚本标签位于标头中,则将在其他任何内容之前发生,这将导致坐在那里的用户在白色屏幕上爬楼梯,直到所有内容下载完毕。 “正确”的方法是将所有内容置于底部。这样,页面在下载资源时呈现,最后一步是应用行为。 但是,如果您有大量的javascript会怎样? (在facebook的示例中,大约一个meg)您得到的是页面渲染,并且在js崩溃之前是完全不可用的。 到那时,您需要查看所拥有的内容,并开始将其拆分为重要和不重要的js。这样,您可以采取多阶段方法,将必要的内容引入页面,以使其在最低限度的水平上快速运行,然后再加载次要的内容,甚至按需加载。 通常,您会知道到达那里的时间,此时,您需要研究更高级的技术,例如脚本加载器。在此之前,答案始终是“少了HTTP请求”。     
        这实际上取决于情况,设备,受众和互联网连接。 例如,移动设备在连接速度较慢时需要尽可能少的HTTP请求,并且每次往返都需要更长的时间。您应该走到CSS文件中的内嵌(基本64位)图像。 通常,我将主平台和js libs + css压缩到一个文件中,每个文件都缓存在CDN上。仅在一页上的JavaScript或CSS功能可以内联或包含在其自己的文件中。 JS功能并不是很重要,我将移至页面底部。对于所有文件,我都设置了一个远HTTP过期标头,以便它永远存在于浏览器缓存中(或者直到我对其进行更新,或者当缓存填满时它被淘汰)。 此外,要解决下载限制,您可以使用CNAMES(例如images.yourcdn.com和scripts.yourcdn.com),以便用户可以并行下载更多文件。即使您不使用CDN,也应该将静态媒体托管在单独的主机名上(可以指向同一框),以便用户不需要时不发送Cookie。这听起来像是溢出,但Cookie可以轻松地为每个请求添加额外的4-8kb。 在开发人员环境中,您应该处理所有未压缩的文件和单个文件,例如,无需将每个插件都移到一个脚本中-进行更新时很难维护。在测试和部署之前,您应该具有一个脚本来合并文件。这听起来很繁琐,但是您可以为一个项目做一些事情,并且可以在以后的所有项目中重复使用。 TL; DR:这要视情况而定,但通常将两者混合使用是合适的。 \'精通移动设备,HTTP越少越好。     

要回复问题请先登录注册