我使用了很多 Dojo,但到目前为止,我只通过包含来自 AOL/Google 等 CDN 的方式使用它。
托管 Dojo 的副本而不是通过 CDN 使用它有什么优势吗?我没有太多需要更改代码库,但我想还有其他优点/缺点?
通过托管您自己的 Dojo 环境。例如,您可以自定义构建 dojo。所以你只需要加载一个 *.js 文件。这节省了 xhr 请求使用的流量。
-jstr
在外部托管任何东西的缺点是您无法控制它。您不会通过 Google/AOL CDN 获得此信息,但您可能会遇到 BootyCall 在他的网站上使用 Doug Crockfords json.js 时遇到的相同问题。http://ajaxian.com/archives/doug-crockford-and-the-online-booty-call-saga
优点是您不必为带宽付费,并且会一直添加正确的到期时间
+1 用于自定义构建。
我们在不保证可以访问 Internet 的产品中使用 Dojo,因此我们将 Dojo 嵌入到我们的产品中。
难道不能把这两种方法结合起来吗?我尝试将我的 dojoConfig 配置为具有以下 baseUrl //ajax.googleapis.com/ajax/libs/dojo/1.8.3/,同时脚本标记指向自定义 dojo 构建文件。问题是,当我加载自定义 dojo.js 时,没有加载 NLS 文件(例如 dojo_en-US.js)。找不到解决方法。
在我看来,只要部署环境对 CDN 开放,这将是最好的解决方案,原因有几个(正如其他人已经说过的): 1. 自定义 dojo 减少 XHR 并提高性能 2. 如果自定义构建不完整(有人加了一个要求),XHR 服务速度快得多 3. 有资源(例如图像)无法嵌入到自定义构建中,因此最好从 CDN 加载它们 4. 应用程序的打包和部署很多更快,因为它应该只包含 dojo.js 文件,而不是整个 dojo 释放资源。
如果有人能证明我错了并告诉我如何将这两种方法结合起来,我会很高兴。
谢谢,里奥