如何将Dojo 1.6升级到Dojo1.7更好地进行移动应用的开发

本文将通过一个使用 Dojo1.6 的 iPad 本地化应用实例,讲述如何将其升级到 Dojo1.7,更好地进行移动应用的开发。

Dojo 是一个 ">JavaScript 框架,属于一个开源的项目,IBM 和 Sun 公司都宣布对 Dojo 的官方支持,为其贡献源码。 Dojo 主要用在 Web 工程项目中,能够使 Web 页面具有更好的动态效果。

随着移动应用快速发展,Dojo 也陆续加强对移动应用的支持,提供了更多的原生组件,达到同使用原生语言一样的用户体验。我们就有可能把原生的移动应用的开发,彻底转换成 Web 项目的开发,便于我们的移动应用可以跨平台使用。

Dojo1.7 作为 Dojo2.0 的过渡版本,兼容 Dojo1.6 版本,但是也带来了很多新的变化,无论从 Dojo 包的配置,还是到具体一个组件的编写,Dojo1.7 都与之前的方式截然不同。下面我们会先介绍在 Dojo1.7 中的一些新特性,然后用一个实例讲解在升版过程中需要注意的一些问题。

Dojo 1.7 新特性:AMD(Asynchronous Module Definition)

AMD 是一种异步模块加载机制,最初由 Dojo1.6 引入的一种新特性,并在 Dojo1.7 中得到全面支持。异步加载方式是 Dojo2.x 中模块加载主要方式,而 Dojo1.x 版本以同步加载方式为主。与同步加载方式相比,AMD 异步加载方式有着更多优势:一是 JS 库的重用,Dojo 可以加载其他支持 AMD 的 JS 库,反模块加载的性能提升;二是最小的模块依赖;三是匿名和非全局的模块设计;四是不使用全局的根变量(或对象)“dojo,dijit,dojox”,增加了安全性。

AMD 的定义模式是

( id?,dependencies?,factory )

其中:id 表示当前模块唯一标识,是可选的,如果忽略,默认为加载器访问的文件路径;如果该参数被指定,只能是绝对标识。

dependencies 是一组依赖模块数据,数组元素是模块的 id。依赖模块要先于 factory 功能模块进行加载,并传递给 factory 功能模块作为其参数使用。该参数是可选的,如果忽略,加载器会从 factory 模块中解析出数组数据。

factory 是工厂函数模块,模块进行加载时会进行调用。factory 可以是功能函数,这时仅被执行调用一次;也可以是对象、字符串等任意值,这时 module.exports 设置成 factory 的值。

下图为一个 AMD 定义模块实例。图中,省略了模块的 id,1 表示依赖模块的数组,用中括号 [] 包含依赖模块,每个元素用 '/' 分割文件路径,效果等同于 Dojo1.6 中使用 dojo.require。

2 表示 factory 工厂函数,被模块加载器加载,用括号 {} 包含工厂函数具体实现,其中参数 DataGrid 是依赖模块数组中的 dojox/grid/DataGrid,可以使用 JavaScript 中的任何变量名,包括符号 $ 进行表示,一般写成依赖模块全名中以 / 分割的最后一个变量。

3 调用了工厂函数中的参数表示的模块,在这个例子中,使用了 DataGrid 模块暴露的构造函数的功能。同时,也可以使用 DataGrid 模块暴露的其他 API。

4 是此模块暴露的 API,供该模块被调用或别名的形式表示时使用。这部分可以是任何对象或函数。另外,也可以使用 exports 向外提供 API。

图 1.AMD 定义模块

Dojo 1.7 新变化:dojox.mobile 新功能模块

Dojo1.6 中的 dojox.mobile 的文件结构如图所示:

图 2.Dojo1.6 的结构目录

Dojo1.7 的 dojox.mobile 的文件结构如图所示:

图 3Dojo1.7 的结构目录

从图中看出,Dojo1.7 在文件结构上出现变化,mobile 的特征以唯一的 js 文件的形式展示,而不是把大部分的 mobile 特征写在 dojox/mobile/_base.js 文件中。下面介绍在本文中使用的三种 mobile 新功能模块。

SpinWheel 是 Dojo1.7 中新增加的一个构件,实现了移动设备上旋转的滚轮的原生效果,供用户选择数据。它有两个子构件:日期构件和事件构件。

dojox.mobile.Opener 是 Dojo1.7 中新增加的一个效用构件,模仿移动设备上的弹出层或工具提示框的原生效果。

SwapView 是一个容器构件,支持用户 swipe 的方式切换移动设备上的显示视图,在 Dojo1.6 中,此构件的名字是 FlippableView。

时间: 2024-11-08 21:23:02

如何将Dojo 1.6升级到Dojo1.7更好地进行移动应用的开发的相关文章

迪兰HD7750酷能+2G DC显卡再升级双风扇散热更给力

年关将至,经过了一年的忙碌,终于要迎来收获时节了.每逢此时,茶余饭后大家都会谈论到一个话题--年终奖.关于年终奖,每个人都有每个人的打算,但是小编在此提醒各位,在为亲人朋友准备礼品的时候,千万别忘了犒劳犒劳自己.过年=过忙,对于那些没有时间出去游玩的朋友来说,忙里偷闲玩玩游戏也不失为一种有效的放松方法.好消息是,2012年是十足的游戏大年,http://www.aliyun.com/zixun/aggregation/38127.html"><暗黑3><Dota2>

CNZZ“广告管家”功能升级 自定义让广告管理更高效

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 2012年1月4日,CNZZ"广告管家"又一次进行产品升级.自去年8月份上线以来,"广告管家"博得了众多网站主的追捧.此次CNZZ"广告管家"添加诸多可自定义设置的功能,从功能上相比之前更加人性化,使得广告管理操作起来更加便捷.高效. 一.自定义"广告模板"功能

芜湖智慧城市再升级 信息惠民更精准

"十九大报告提出,要建设网络强国.数字中国和智慧社会,这些都让我们信息化工作者倍感振奋,也感到身上的担子沉甸甸."谈起学习十九大精神的体会,市信息资源管理中心主任黄丽娟用"倍感振奋.责任重大"作了概括. 黄丽娟在信息化领域工作多年,见证了芜湖信息化建设取得的长足发展.2013年,芜湖成为首批国家90个智慧城市试点城市.随着"智慧芜湖"向纵深推进,我市在 "互联网+政务服务"" 互联网+公共服务""

如何把一个.net 2003作的网站,升级为.net的更高级版本?

问题描述 网站功能比较简单,只是通过水晶报表将数据库内的数据以excel格式导出.请问怎么该怎么做呢? 解决方案 解决方案二:同求,能直接升级?解决方案三:是VS2003不是.NET2003....一般说的升级都是.NetFramework的升级.直接使用高版本的VS,切换一下.NET版本生成一下就好了.解决方案四:安装VS2012以上版本然后打开解决方案然后它会自动转换并备份原来的.解决方案五:引用2楼tsgx_1989的回复: 是VS2003不是.NET2003....一般说的升级都是.Ne

深圳移动服务再升级深圳市民通信更畅快

近年来,深圳移动公司一直没有停止过对更优质服务的追求,"8大服务承诺"."金牌服务"."五心服务"."满意100"服务--这些以诚信服务为主题的活动旨在为广大移动用户提供方便.快捷.高质量.高水平的服务. 2010年,深圳移动公司即将开展"精彩亚运 服务升级"主题活动,让客户享受到更舒心更高效的升级服务. 多样化渠道提供便捷服务 客户所熟知的10086客户服务热线.沟通100服营厅,以及基于互联网和移动互联

微信会员卡能力升级了 致力于更好连接商家和用户

今天,第五季微信公开课首站在北京举行,微信团队正式宣布升级微信会员卡功能.微信事业群开放平台基础部副总经理李培库在现场表示:"我们也希望微信会员卡真正帮助商户发展客户,为用户提供更优质的服务,这是微信平台长期以来的服务理念."此次功能升级重点实现了"会员卡-公众号-微信支付"的打通,优化了各环节的体验,帮助商家与用户建立长期联系,形成有效互动. 从用户.粉丝到会员,这样做更有效果 如果你是商家,是否也想象过:如果所有来买东西的人都成为自己的会员就好了.此番升级的微信

耐思尼克不断升级服务让发展更健康

我国互联网飞速发展,中小企业信息化应用也在快速普及,网络基础服务需求在中小企业市场中陡然增加,域名市场的火热更是带动了虚拟主机等网络基础产品的需求.据最新统计数据显示,90%的中小企业会选择虚拟主机作为网站空间,大量的IDC公司不断的涌入这个有着庞大需求的市场,一度造成了IDCE服务商的混乱局面和无序竞争.那么耐思尼克又是靠着什么在这个竟争激烈的局面中生存的呢?并且用户扩展到6位数的呢. 多年以来,耐思尼克一直秉承着"以技术为主导,以服务为基础"的企业精神,坚持以客户为导向,为用户提供

站备案升级2.0版-更快速、更便捷、更健康

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 根据信息产业部的消息,信产部发布了"关于应急处理网站备案系统问题的公告",以下为公告原文: 各互联网接入业务经营者.互联网信息服务提供者: 近期由于网站备案系统存在问题,导致系统运行缓慢,造成广大用户无法正常备案,对由此给广大用户带来诸多不便深表歉意,敬请广大用户给予谅解. 为了保证网站备案工作长期顺利开展,我部正在对备案

Tiny模板语言(VelocityPlus)初步入门

1 关于用户手册 本文主要介绍如何在模板中使用Tiny模板语言,通过查阅本手册,可以对Tiny模板语言 TTL(Tiny Template Language)的用法有一个较全面的认识,并学会如何有效地使用Tiny模板语言.同时,本文提供了较多的例子帮您来学习并掌握它. 2 Tiny模板语言概述 Tiny 模板语言是一个参考Velocity语法的模板语言,它对Velocity模板语言中一些功能不太完全及使用过程中比较不方便的地方进行全面的扩展和升级,同时为了更好的适应Web界面层的开发,还提供了强