gpt4 book ai didi

javascript - 通过 DOJO JS 升级

转载 作者:行者123 更新时间:2023-12-02 04:20:26 25 4
gpt4 key购买 nike

我需要 DOJO 1.3 和 DOJO 1.10 之间的差异。

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

我不知道这之间的版本。我知道旧版本中的代码级别发生了变化,但替换速度较慢。

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

提前致谢:)

最佳答案

您最好的资源将是 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<
  • 更新任何异步逻辑以使用 deferred/promise Dojo 1.8 中更新的 API - Promise 在 1.5 中首次引入 Dojo,它们提供了比旧的 1.5 之前的 Deferreds 更稳定的概念(只要回调被链接,它就会发生变化,并且可以被任何引用它的东西解析/拒绝) )
  • 更新 XHR 以使用 dojo/request而不是 dojo.xhrGet
  • 更新了 dojo.connect 的使用,将 dojo/on 用于事件,或使用 dojo/aspect 用于方法连接点
  • 更新小部件以调用 get('foo')set('foo')(并实现 _getFooAttr_setFooAttr 用于自定义访问器/修改器)而不是 getFoosetFoo

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

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

关于javascript - 通过 DOJO JS 升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com