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