【问题标题】:Dojo on a CDN vs own installCDN 上的 Dojo 与自己的安装
【发布时间】:2013-03-24 17:43:16
【问题描述】:

我使用了很多 Dojo,但迄今为止,我只通过从 CDN 中包含它来使用它,例如 AOL/Google。

托管 Dojo 副本而不是通过 CDN 使用它有什么好处?我没有太多需要更改代码库,但我想还有其他优点/缺点?

【问题讨论】:

    标签: dojo cdn latency


    【解决方案1】:

    通过托管您自己的 Dojo 环境。例如,您可以自定义构建 dojo。所以你只需要加载一个 *.js 文件。这样可以节省 xhr 请求使用的流量。

    -jstr

    【讨论】:

    • 是的,自定义构建应该是自己托管它的主要原因。
    • 不是自定义构建的强大功能,但 CDN 中包含一些“标准”层,例如 dijit.js,它将与 dojo.require(' dijit.dijit')
    • 这很有趣。使用自定义构建是否意味着更改我当前使用的“dojo.require”?
    • jep,通过创建自定义 buid 并包含它,您不再需要任何 dojo.requires,因为所有必需的资源都包含在由 加载的文件中标记。
    • 您仍然应该在需要的地方使用 dojo.requires,以防配置发生变化。如果类已经加载,Dojo.require 是空操作。
    【解决方案2】:

    在外部托管任何东西的缺点是您无法控制它。您不会通过 Google/AOL CDN 获得此信息,但您可能会遇到 BootyCall 在他的网站上使用 Doug Crockfords json.js 时遇到的相同问题。 http://ajaxian.com/archives/doug-crockford-and-the-online-booty-call-saga

    优点是您不必为带宽付费,并且会一直添加正确的到期时间

    【讨论】:

    • 谢谢 - 非常有用的例子。在构建上设置到期时间是否需要大量工作?
    • 不,它通常只是用相关数据更新您的网络服务器,例如在 apache 上安装 mod_expires httpd.apache.org/docs/2.0/mod/mod_expires.html
    【解决方案3】:

    +1 用于自定义构建。

    我们在不保证可以访问互联网的产品中使用 Dojo,因此我们将 Dojo 嵌入到我们的产品中。

    【讨论】:

      【解决方案4】:

      难道不能将这两种方法结合起来吗? 我尝试将我的 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发布资源。

      如果有人能证明我错了并告诉我如何将这两种方法结合起来,我会很高兴。

      谢谢, 利奥

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 2017-09-30
        • 2014-10-02
        • 2014-01-31
        • 1970-01-01
        相关资源
        最近更新 更多