首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

浅谈如何将项目中的 Dojo 从 1.6 升级至 1.8(1)简介

浅谈如何将项目中的 Dojo 从 1.6 升级至 1.8(1)简介

引言Dojo 作为一款JavaScript 框架级产品,在项目的前端展现中通常承担着重要角色。对它的升级将对整个项目产生广泛的影响,因此必须对 Dojo 的升级全程考虑周全。从具体的项目需求出发,首先要明确项目升级 Dojo 的目的有哪几个,在此基础上,选用合适的升级策略制定升级计划。之后需要前端开发人员根据制定的升级计划,对项目的前端展现部分进行代码级别的改动。最后需要对整个项目进行充足的回归测试来保证升级的质量。本文将从这几个环节进行详细阐述,以使您能够对整个 Dojo 升级的过程有清晰的认识和了解。
项目中 Dojo 升级的背景与目的一款框架的升级,通常会着重解决这款框架在功能、性能以及稳定性等方面存在的问题。对于 Dojo 1.8 而言,它比 Dojo 1.6 及以前的版本在以下方面做出了改进:
  • 解决了大量存在于 Dojo 1.6 中的错误和缺陷。
  • 加入了大量全新的 widget 控件,增强了对移动设备的支持。
  • 完善 AMD 机制,一定程度上提高了前端 JS 的性能表现。
  • 优化 Dojo 的 API,使开发人员可以更方便快捷地使用 Dojo。
因此,一个使用 Dojo 的项目如果遇到以下问题,则可考虑对 Dojo 进行升级:
  • Dojo 源码引起的各种缺陷影响了项目质量;
  • 项目前端展现单调,需要新的展现元素;
  • 项目前端的性能难以满足项目需求;
在笔者参与的项目中,将 Dojo 1.6 升级至 Dojo 1.8 的主要目的是使项目可以更好地在 iPad 等移动设备上使用。Dojo 1.6 的控件已无法满足项目需求,因此唯有升级至 Dojo 1.8,才能获得 Dojo 1.8 所提供的丰富的移动平台的控件支持。
Dojo 升级策略的选取Dojo 升级需要制定相关的升级策略。升级策略的制定与上文所提及的项目的升级目的息息相关。不同的升级目的采取的升级策略不尽相同。
Dojo 1.8 采用了全新的 AMD 加载机制,而这在 Dojo 1.6 及以前的版本是不被完全支持的。同时 Dojo 1.8 也依然保留了对 Dojo 1.6 及以前版本的部分兼容。因此,对于 Dojo 1.6 及以下版本而言,升级至 Dojo 1.8 有以下两种升级策略:
  • 全新升级:指的是改写所有 Dojo 1.6 中自定义的 widget 控件的声明和使用,使其符合 Dojo 1.8 中的 AMD 规范,从而使整个项目支持 AMD 加载方式。
  • 兼容升级:指的是改写少部分 Dojo 1.6 中的 widget 使用方法,并将 Dojo 1.8 中的异步模式关闭,使 Dojo 1.8 以兼容模式加载执行大部分 Dojo 1.6 的代码。
这两种升级策略各有优劣,详见表 1。
表 1.两种升级策略优劣比较策略代价风险获益全新升级高高多兼容升级低低少
在代价方面,全新升级要修改全部自定义的 widget 控件的声明和使用方式,而兼容升级只需要修改少部分 API 发生变化的 widget,因此全新升级的代价要远高于兼容升级。在风险方面,全新升级修改的代码范围更广,并且改变了原有 JavaScript 的加载方式,因此这种升级策略给整个项目带来的风险更高。在获益方面,全新升级可以使项目完全支持 AMD 加载方式,可在一定程度上提高前端显示的用户体验,同时也为今后升级 Dojo2.0 打下基础,而兼容升级由于依然使用的是传统的加载方式,并且 Dojo 官方声明 Dojo2.0 将不再具有这种兼容模式,因此全新升级为整个项目带来的益处要更大。
然而,正如之前所言,没有更好的升级策略,只有更适合的升级策略。选择哪种升级策略要视项目需求而具体对待。在笔者的项目中,因为升级的需求是为得到更多的 widget 以支持移动平台的使用,而对 AMD 等其他特性需求不高,再加上项目对 Dojo 升级的周期要求短,因此最终自然要选择兼容升级策略进行升级。
返回列表