哪个更好:公共JavaScriptCDN或自托管组合JavaScript
Which is better: public javascript CDN or self-hosted combined javascript?
我的网页使用了几个JavaScript库,如jquery,jquery-ui,underscore,backbone和其他一些著名的jquery插件。
现在我面临一个两难的境地,我可以:
-
使用托管所有这些库的公共 CDN。如果用户使用相同的 CDN 访问了另一个站点,则脚本可能已被缓存。但由于每个库都是独立的,页面需要包含许多脚本标签,因此需要包含许多 http 请求。
-
将所有必需的脚本合并为一个(包括我自己的脚本文件)并将其托管在我自己的服务器上。只有一个请求可以完成所有操作,但我无法比 CDN 更快地提供脚本,并且无法利用缓存。
根据您自己的经验,哪个更好?
而且我想估计一下是否有足够的网站使用提到的CDN(如果很多知名网站使用它们,那么脚本被缓存的概率很高),我该如何调查?我尝试在谷歌上搜索脚本 src 属性,但谷歌似乎没有索引它。
如果只使用 1-2 个库,一个好的做法是包括 CDN 版本,并回退到本地版本。这是大多数 HTML 样板/框架使用 .e.g 的做法。
http://html5boilerplate.com/
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="//myserver/js/libs/jquery-1.8.3.min.js"><'/script>')</script>
但是,您正在使用大量库,因此可能存在依赖项,以及页面上它们的特定顺序,其中一些可能不存在于标准 CDN 上,因此无论如何您都必须包含来自服务器的一些 javascript。因此,对于您的情况,更好的选择是将所有 JavaScript 代码很好地组合/版本控制到 1-2 个文件中,例如一个用于库(通常不触及),一个用于您自己的自定义代码(当您对其进行更改时缓存被破坏)。
相关文章:
- 在单独加载时运行良好的组合javascript中可能导致错误的原因
- 组合 JavaScript 数组
- 组合 Javascript 函数
- 如何组合 JavaScript 对象
- 从选择/组合 JavaScript 中删除节点
- 组合 JavaScript 函数
- 组合 Javascript 变量
- 如何在 HTML 中组合 JavaScript 变量
- 函数组合javascript
- 如何缩小和组合Javascript和CSS
- 编程岩石,纸张,剪刀的选择组合-Javascript
- 比较和组合Javascript中的数组
- AngularJS通过组合javascript文件减少HTTP请求
- 有条件地组合javascript文件作为预编译步骤(比r.js更灵活)
- 在博客上组合Javascript
- 动态组合JavaScript数组
- 创建所有可能的组合- javascript
- 文本框&选择字段组合(Javascript + Rails)
- 使用Javascript预处理器组合Javascript文件
- 哪个更好:公共JavaScriptCDN或自托管组合JavaScript