“modern”dojo
本文会介绍一下,dojo1.10带来的新的变化。
准备开始
Dojo1.7是一个重要里程碑,整体的架构更加灵活,也更加“现代化”。Dojo1.10则在1.7的基础上,引入了一些新的特性和概念,例如dojo/on
。如果你想让dojo代码跑的更快,更加高效,并且想提高代码的可维护性,那就赶紧升级到dojo1.10吧。另外,dojo是完全向后兼容的。
新hello world
modern dojo其中一个核心概念是:禁止使用全局命名空间。dojo为了向后兼容,原先放置在全局命名空间中的函数和变量,仍然是可用的,但在新版的dojo中,最好别用。因为其他开发人员随时可能自己定义一个名字跟全局命名空间中的函数名一样的函数出来,这样会造成冲突的。像下面的使用方式就不推荐。
dojo.* or dijit.* or dojox.*
其实只需简单的引入dojo.js
,然后使用require()
方法加载其他模块即可。
另一个核心概念是:同步操作慢,异步操作快。dojo 1.7(包括1.7),支持Asynchronous Module Definition (AMD)的概念,可以使用require()
来异步加载用到的dojo 模块。
旧版用法
dojo.ready(function(){
dojo.byId("helloworld").innerHTML = "Hello World!";
});
新版用法
require(["dojo/dom","dojo/domReady!"],function(dom){
dom.byId("helloworld").innerHTML = "Hello New World!";
});