通过DOJO JS进行升级

时间:2015-09-29 10:20:02

标签: javascript java dojo

我需要DOJO 1.3和DOJO 1.10之间的区别。

在我的应用程序中,我们使用的是1.3版本,因此我们计划使用最新版本1.10。只是我从在线免费下载获得1.10版本,然后我比较了版本之间的源代码。我发现很多不同之处,所以我对升级感到震惊,因为我是否可以替换或者我必须重新编写代码。

我不知道这些之间的版本。我知道旧版本中的代码级别更改,但更换时滞后。

所以任何人都可以向我暗示差异。如何将我的代码升级到最新版本?

提前致谢:)

1 个答案:

答案 0 :(得分:2)

您的最佳资源将是release notes,每个增量次要版本都会存在。

就“如何升级”而言,这取决于您的最终目标。 Dojo在很大程度上旨在向后兼容,所以 的内容大部分仍然有效。以下是一些我可以想到的偶然破坏的地方:

  • 自定义窗口小部件样式(因为某些窗口小部件的DOM结构发生了变化,特别是大约1.5-1.7)
  • 依赖于内部方法的自定义小部件扩展
  • 自定义构建配置文件 - 1.7之前的构建系统为人们提供了一些很多自由来做一些非正统的事情,而构建系统从1.7及更高版本转换为所有非AMD模块到AMD ,由于将这些模块中的全局变量包含在函数中(但应避免使用模块中的全局变量),这往往会主要导致人们出现问题,因为这些模块中的全局变量不再是全局的。

如果您有兴趣更新代码以使用更高版本的Dojo中提供的功能,以下是一些主要关注领域的示例(这当然不会是一个详尽的列表):

  • 将遗留模块格式(带dojo.providedojo.require)与AMD模块交换,不再依赖全局/全局命名空间
    • 转换为AMD的最终目标应该是让自己将async: true添加到dojoConfig,这会将加载程序配置为向后兼容的同步加载(这很慢)并且表现得像一个AMD装载机
  • 更新所有数据存储以使用dojo/store(甚至是dstore,但目前只有dgrid直接支持这种情况)而不是dojo/data
  • 更新任何异步逻辑以使用在Dojo 1.8中更新的deferred/promise API - 承诺首次引入到1.5中的Dojo,它们提供了比旧的1.5之前延迟更为稳定的概念(每当回调时都会发生变化)链接,可以被任何参考它的东西解决/拒绝)
  • 更新XHR以使用dojo/request代替dojo.xhrGet
  • 更新dojo.connect使用dojo/on用于事件或dojo/aspect用于方法连接点
  • 的用途
  • 更新小工具以调用get('foo')set('foo')(并为_getFooAttr_setFooAttr实施自定义访问者/变更者),而不是getFoo和{{1} }

其他一些值得关注的事情:

  • Modern Dojo教程解释了1.7 +
  • 中已更改的内容
  • Builds教程提供了有关如何使用/配置构建系统的全面(可能 彻底)指南
  • 如果您之前从未使用过AMD格式,IntroAdvanced AMD教程会有所帮助
  • dojo-amd-converter项目可能值得进行测试运行,至少可以让您了解要更新代码以更新代码的类型