为了提高我们网页的性能,我们建议使用CDN.js
在我们的网页上提供文件。那讲得通。
此外,我们建议捆绑我们的.js
文件,以减少负载时向服务器发出的请求数量。
因此,我们需要坐下来决定是使用 CDN 还是捆绑.js
文件。
优缺点都有什么?哪些更有意义?
为了提高我们网页的性能,我们建议使用CDN.js
在我们的网页上提供文件。那讲得通。
此外,我们建议捆绑我们的.js
文件,以减少负载时向服务器发出的请求数量。
因此,我们需要坐下来决定是使用 CDN 还是捆绑.js
文件。
优缺点都有什么?哪些更有意义?
为什么不能捆绑它们并将它们放置在 CDN 中?这几乎不应该是一个或另一个的决定?
如果您必须选择其中一个,这取决于.js
您包含多少文件。对于少量文件,我建议CDN会更快,而对于更多数量的文件,一堆.js
文件肯定会更快。切换的位置是您可以尝试的。
我的回答:两者都是。捆绑它们并将它们放在 CDN 上。
这样做的缺点?要看。你的构建过程是什么样的?您可以轻松地自动化捆绑和缩小吗?您使用的是 Yahoo YUI 还是 Google Closure 或其他东西?
此外,如果有很多依赖于 GUI 的 jQuery,由于不断变化的元素/效果/css,可能会出现一些耗时的摩擦。
测试也很重要,因为可能会出现缩小怪癖。
底线:5 个 javascript 文件安全地捆绑到 1 个文件中 === 减少了 4 个请求。
一个页面只有普通的旧 Html 和一个外部 javascript 引用 === 2 对您的服务器的请求。但是,一个页面只有普通的旧 Html 和一个 CDN 上的外部 javascript 引用 === 1 对您的服务器的请求。
目前我们正在使用 Google Closure 工具。Google Closure Inspector可提供以下帮助:
Closure Compiler 会修改您的原始 JavaScript 代码并生成比原始代码更小、更高效但更难阅读和调试的代码。Closure Inspector 通过提供源映射功能来提供帮助,该功能识别与编译代码对应的原始源代码行。
有几件事你需要考虑...
页面加载初期需要加载多少 JS,延迟到后期可以延迟多少?
如果您可以延迟加载 JS(例如将其放在页面底部)或像 Google Analytics 那样异步加载它,那么您将最大程度地减少下载 JS 所花费的阻塞 UI 线程的时间。
在弄清楚如何拆分 JS 的负载之后,我将处理各种 JS 文件的合并/缩小 - 减少 HTTP 请求是提高性能的关键。
然后考虑转移到 CDN 并确保 CDN 可以提供压缩的 JS 内容并允许您设置标头以便“永久缓存”(如果您永久缓存,则需要对文件进行版本控制)。CDN 有助于减少延迟,但也可以通过无 cookie 来减少大小
您可能要考虑的另一件事是为静态内容设置一个单独的域,在您整理内容时将其指向您的服务器,然后在看起来值得时切换到 CDN。
安迪
正如其他人已经说过的那样,如果可能的话,答案是两者兼而有之。捆绑(和缩小)为您的用户带来好处,因为它减少了页面重量。CDN 使您的服务器受益,因为您正在卸载工作。一般来说,除非您观察到性能问题或者您没有更好的事情可做,否则您也不需要优化。