我的网站使用了大约10个第三方javascript库,如jQuery,jQuery UI,prefixfree,一些jQuery插件以及我自己的javascript代码。目前,我从像CDN和cloudflare这样的CDN中提取外部库。我想知道什么是更好的方法:
只要有解释,任何意见都是受欢迎的。 谢谢:))
答案 0 :(得分:136)
CDN的价值在于用户已经访问过另一个站点的可能性,该站点从该CDN调用相同的文件,并且根据文件的大小变得越来越有价值。这种情况的可能性随着所请求文件的普遍性和CDN的普及而增加。
考虑到这一点,从流行的CDN中提取相对较大且流行的文件绝对有意义。 jQuery,以及在较小程度上,jQuery UI,符合这个法案。
与此同时,连接文件对于不太可能发生太大变化的较小文件是有意义的 - 您常用的插件将适合此法案,但您的核心应用程序特定代码可能不适用:它可能每周都会发生变化,并且如果你将它与所有其他文件连接起来,你必须强迫用户重新下载所有文件。
The HTML5 boilerplate在为此提供通用解决方案方面做得非常好:
plugins.js
从您自己的服务器加载的文件。这将缓存一个
用户第一次访问并加载时,远程到期标头
缓存后续访问。main.js
,有一个更接近的到期标头,以说明您的应用程序逻辑可能会从
每周或每月或每月。这样当你修复了一个bug或者
当用户访问两周时引入了新功能
现在,这可以加载新鲜,而上面的所有内容都可以
从缓存中引入。对于您的其他主要库,您应该单独查看它们并问自己是否应该遵循jQuery的主导,从您自己的服务器单独加载,或者连接。一个如何做出这些决定的例子:
plugins.js
。这样,您始终可以使用Bootstrap扩展更新plugins.js
,而无需强制用户下载所有Bootstrap核心。但没有必要 - 你的里程可能会有所不同。