捆绑.js文件与CDN

时间:2011-09-16 14:04:14

标签: javascript asp.net cdn resourcebundle asp.net-optimization

为了提高网页的效果,我们建议您使用CDN来在我们的网页上提供.js个文件。这是有道理的。

此外,我们建议捆绑我们的.js文件,以减少加载时服务器的请求数。

因此,如果我们使用CDN或捆绑.js文件,我们需要坐下来做出决定。

有什么利弊?哪些更有意义?

4 个答案:

答案 0 :(得分:13)

为什么不能捆绑它们将它们放在CDN上?它应该不是一个或另一个的决定?

如果 选择其中一个,则取决于您包含的.js个文件的数量。对于少量文件,我建议 CDN会更快,在哪里 - 对于更多文件,一堆.js文件会 绝对 更快。切换的地方,是你可以试验的东西。

答案 1 :(得分:12)

我的回答:两者。捆绑它们并将它们放在CDN上。

这样做的缺点是什么?要看。你构建过程看起来像什么?你能轻松实现捆绑和缩小的自动化吗?您使用的是Yahoo YUI或Google Closure还是其他什么东西?

此外,如果有很多依赖GUI的jQuery,由于不断变化的元素/效果/ css,可能会有一些耗时的摩擦。

测试也很重要,因为可能存在缩小怪癖。

结论:5个javascript文件安全地捆绑到1个文件中=== 4个请求减少。

只有普通旧Html和一个外部javascript引用的页面=== 2个请求到您的服务器。但是,一个页面只有简单的旧Html和一个外部javascript参考CDN === 1请求到您的服务器。

目前我们正在使用Google Closure工具。 Google Closure Inspector有助于实现以下目标:

  

Closure Compiler修改原始JavaScript代码并生成比原始代码更小,更高效的代码,但更难以阅读和调试。 Closure Inspector提供了一个源映射功能,它可以识别与编译代码相对应的原始源代码行。

答案 2 :(得分:1)

你需要考虑一些事情......

您需要在页面加载的早期加载多少JS,以及您可以延迟多久才能延迟?

如果您可以延迟加载JS(例如将其放在页面底部)或像Google Analytics一样异步加载它,那么您将最大限度地减少下载阻止UI线程的JS花费的时间。

在弄清楚如何分割JS的负载之后,我将处理各种JS文件的合并/缩小 - 减少HTTP请求是提高性能的关键。

然后看看转移到CDN并确保CDN可以提供压缩的JS内容,并允许您设置标题以使其“永远缓存”(如果您永远缓存,则需要对文件进行版本化)。 CDN有助于减少延迟,但也可以通过无cookie来减小尺寸

您可能需要考虑的另一件事是为静态内容设置一个单独的域,在排序时将其指向您的服务器,然后在看起来值得的时候切换到CDN。

安迪

答案 3 :(得分:0)

正如其他人已经说过的那样,答案是可能的。捆绑(和缩小)为您的用户带来了好处,因为它减少了页面重量。 CDN使您的服务器受益,因为您正在卸载工作。一般来说,除非您观察到性能问题或者您没有更好的事情要做,否则您无需进行优化。