Javascript 组合Java脚本与跨CDN拆分

Javascript 组合Java脚本与跨CDN拆分,javascript,cdn,performance,Javascript,Cdn,Performance,各种网站优化指南建议,如果可能的话,应该将多个Javascript组合成一个,以减少http请求的数量。另一方面,有人提出,使用谷歌和微软这样的CDN将分担负载,浏览器将能够并行下载 我有点困惑,我应该将所有的javascript(包括我自己的和第三方的js)合并为一个javascript文件,还是应该将它们分开(至少对于那些通过免费CDN提供的) 我也不清楚浏览器是并行下载多个javascrit文件,还是在下载其他文件之前等待每个javascript下载 我有一个大量使用javascript的

各种网站优化指南建议,如果可能的话,应该将多个Javascript组合成一个,以减少http请求的数量。另一方面,有人提出,使用谷歌和微软这样的CDN将分担负载,浏览器将能够并行下载

我有点困惑,我应该将所有的javascript(包括我自己的和第三方的js)合并为一个javascript文件,还是应该将它们分开(至少对于那些通过免费CDN提供的)

我也不清楚浏览器是并行下载多个javascrit文件,还是在下载其他文件之前等待每个javascript下载


我有一个大量使用javascript的网站,我正在使用几个库(jquery、jquery ui、jquery.json-2.3、jquery.metadata.js、jquery.jcarousel.min.js、jquery.validate.js、jquery.blockUI.js)。

引用CDN总是一个好主意。认为浏览器必须执行更多http请求是无效的,因为这种情况只会发生一次。该文件将被缓存,不再被请求。 使用CDN,用户也可能已经有了缓存版本,并且根本不需要请求它(而在引用本地版本时,用户以前不能缓存该版本)

我建议尝试为每一个可用的第三方插件引用CDN。对于您自己的脚本和不由CDN承载的脚本,请尝试缩小脚本并将其放入单个文件中,以减少流量负载


(为了缩小规模,有很多在线工具可用,也就是说,它可以让您从多个js文件中生成一个js文件)

浏览器下载多个js文件,因为它们位于不同的CDN上。当它们位于同一CDN上时,浏览器会等待每一个CDN完成后再下载另一个CDN


如果可能的话,在不同的文件和CDN上保留第三方脚本是一个好主意,并在您的子域上缩小您自己的脚本,使您的CDN加速加载。

感谢您的快速回复,但我认为只有通过浏览器并行下载多个Javascript时,CDN才有好处。如果浏览器阻止下载每一个Javascript,这可能没有帮助(假设Javascript最初没有缓存)。此外,我看到各种CDN都有许多版本的js库,并且认为其他一些使用jquery的网站可能已经为您缓存了它的说法可能是无效的。就缓存而言,如果它下载我的javascript,它不会也被缓存到后续页面吗?回答你的最后一个问题-是的,对于后续请求,你的文件也会被浏览器缓存。大多数cdn还提供了始终引用最新版本的可能性(例如,当您指定
1
作为版本号时,google的cdn就是这样做的)。这有助于反对可能存在不同版本的缓存的论点-通过使用最新版本的url,可以增加引用缓存版本的可能性。我强烈建议使用CDN,这样可以节省一些流量,用户也可以节省一些请求(随着时间的推移,CDN被引用的次数会越来越多)。但是关于阻塞,一些浏览器还支持一些“猜测”方法,在这种方法中,他们假设脚本不会影响dom,因此可以并行加载。即使没有这种方法,我仍然认为您最好使用cdn,以实现性能、流量和稳定性的最佳混合。>>例如,当您指定1作为版本号时,google的cdn就是这样做的)。我不清楚你怎么能具体说明这一点?没关系,我在这里得到了答案。那么,您是否建议浏览器不会并行地从同一个域下载多个Javascript,而如果Javascript来自不同的域,浏览器会这样做?这听起来有点奇怪。仔细想想,我觉得浏览器可以在一个页面上并行下载多个Javascript(来自同一个或多个不同的域,只要浏览器不受对同一个域的并行请求数量(通常为2个或更多)的限制)。