5

您如何管理在生产应用程序中对DojoX代码或小部件的使用?

Dojo Toolkit由Core、Dijit 和DojoX 组成。作为扩展工具包的新想法的孵化器,DojoX 代码和小部件的功能具有不同程度的不稳定性。

DojoX 代码如QueryReadStore(用于从服务器获取批量数据)或像Grid(用于利用用户界面网格组件)这样的小部件不包含在 Core 或 Dijit 中。但它们的功能足以在某些情况下使用,需要注意的是“开发人员要小心”,因为在未来的 Toolkit 版本中,API 或源代码树中的组件位置可能会发生变化。另一个问题是,您可能必须调整您正在使用的 DojoX 组件才能使其在您的环境中正常运行,因为代码中还没有高度的健壮性。

那么,您如何确保随着您使用的 DojoX 组件的发展,您的应用程序保持平稳运行?

4

2 回答 2

4

这可能是一个显而易见但涉及更多的解决方案……但是:参与进来!它实际上是一次熟悉 Dojo 的整体功能的最佳方式之一,教授了很多优秀的 JS-foo,并确保您掌握有关特定模块未来的内部信息。DojoX 的大部分内容是社区贡献的,旨在稳定和有用。审查、测试、修改代码的人越多——它就越有可能成功并变得稳定。

问候,彼得·希金斯

于 2008-12-27T13:24:57.477 回答
3

有几种方法可以做到:

  • 坚持使用一个版本的 Dojo 并始终如一地使用它。
  • 将修改后的代码移动到您自己的命名空间并从那里包含它。
    • 实际上,它是现有 DojoX 模块的一个分支。所有代码同步和反向移植都是您的责任。
    • 注意 Dojo 的其余部分——如果它的变化导致你的分叉版本被破坏,那么也要准备好修补你的模块。
  • 将修改后的文件复制到某处并在需要原始文件之前包含/需要它们。

为了说明后一种技术,假设我要修补位于 dojox/charting/abc.js 中的一个文件:

dojo.provide("dojox.charting.abc");
// the rest of the file
...

我可以将它复制到我的目录中,例如 my/patched_abc.js,并使其看起来像这样:

dojo.provide("my.patched_abc");
// now I include the rest of the file with my modifications

dojo.provide("dojox.charting.abc");
// the rest of the file
...

在我使用 dojox.charting 的代码中,我像这样包含它:

dojo.require("my.patched_abc");
// now I can include dojox.charting,
// which will use my patched dojox.charting.abc module

dojo.require("dojox.charting.Chart2D");
// the rest of the file
...

请注意避免循环“要求”语句。

这种技术非常适用于反向移植和小型定制。如果您的更改比这更广泛,您应该考虑编写自己的模块。

于 2008-11-19T03:08:35.527 回答