`
子衿青青
  • 浏览: 110911 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

为什么选择Dojo - 记Dojo中文博客正式开张

 
阅读更多

公告栏里写到:Dojo的高门槛一旦跨过,必将别无所求。含义有二:第一,Dojo难学;第二,Dojo很强大。

这也揭示了本博客的目标:帮助大家用好Dojo这个优秀的Ajax框架。

在回答为什么选择Dojo之前,我们看看哪些人已经选择了Dojo:

Dojo支持者

既然能被众多著名IT公司支持,Dojo必然有它的独特之处,那就是:架构。

一个稳定、可扩展、可维护的架构是所有高质量应用的基石。如果所有人都按自己的思路随心所欲的写代码,那就不会有那么多软件方法学,设计模式的存在。Dojo在一定程度严格规定了这样的开发规则,这也是很多人难以上手的原因。

以典型的数据,逻辑,表现的三层架构为例,来看看Dojo中树(Tree)是如何设计的:

树形结构是各种开发最常用的一个组件,其本质是:一种数据表现视图,负责处理用户交互(逻辑)和内容展示(表现),不存储任何数据。Dojo中的树完全符合这样的本质,所有数据的存储和对数据的操作都是通过专门的DataStore来实现。

因此,当我们习惯性的想用Tree.addNode(text)这样的方法去增加一个节点时时,却发现方法不存在。而正确的做法是:通过DataStore来增加一条数据,Tree会自动的更新数据的变化到界面。修改删除节点也是同样的逻辑,甚至节点的按需载入(Lazy Load)也是DataStore的逻辑,而不是Tree的。这实现了数据层的分离。

同样,当我们习惯性的想给一个树节点的icon属性指定一个图片路径,来改变节点的图标,这在我们需要根据节点内容决定图标时很常用。但我们却会发现无法找到这样的API。正确的做法是派生一个新类,重写getIconClass方法去改变节点的CSS Class,再通过CSS来指定节点的图标。这实现了表现层的完全分离。

显然,这个Tree很难用。要创建一个树,我们首先得学会DataStore,熟悉它的API;还得知道如何从Dojo的Tree去派生新类来重写方法,这又要去了解整个Dojo的类的继承机制。很多人开始抱怨,Dojo真难用。但其实只要前进一步,就会海阔天空。

表面上看,这些架构和模式,增加了开发难度。而实际上,它却增加了代码的健壮性和可维护性。在这样一个实际开发代码只占整个项目时间10%的没有银弹的时代,架构才是提升整个软件质量的关键。良好的架构,可以大大降低整个项目的风险。而从Dojo中,我们能够潜移默化的学习到Ajax应用应该如何去设计。

很多时候,最好的选择就是自己最熟悉的工具。但如果恰好这个最熟悉的工具又是一个强大的工具,那将事半功倍。当你需要去开发一个长期的或者大量使用Ajax的应用,Dojo将是最好的选择。

从熟悉到习惯之后就会发现,Dojo的门槛其实并不高。

by Nate,2010-6-12

分享到:
评论

相关推荐

    struts2-dojo-plugin-2.3.4 jar

    struts2-dojo-plugin-2.3.4 jar 日期控件的jar包 需要的自行下载

    struts2-dojo-plugin-2.2.1.jar

    总的来说,struts2-dojo-plugin-2.2.1.jar为Struts2开发者提供了一个强大的工具,帮助他们构建更加现代和动态的web应用,同时降低了JavaScript编程的复杂度。通过深入学习和实践,你可以充分利用这两个优秀框架的...

    dojo-release-1.4.2-src.tar.gz

    总的来说,"dojo-release-1.4.2-src.tar.gz"为开发者提供了一个完整的Dojo Toolkit源码包,包含了构建复杂Web应用所需的各种工具和组件,是一个深入了解JavaScript库开发和Dojo架构的好资源。尽管这个版本相对较旧,...

    dojo-release-1.6.1-src.zip

    10. **dojo/parser**: 解析XML或HTML中的data-dojo-type属性,自动实例化Dojo部件或行为。 1.6.1版Dojo的源代码可以作为学习和研究Dojo框架的基础,通过阅读源码,开发者可以了解其设计模式、编程技巧以及如何利用...

    dojo-release-1.10.4

    Dojo 是一个强大的JavaScript工具库,专为构建交互式Web应用程序而设计。"dojo-release-1.10.4"是Dojo框架的一个稳定版本,发布于2015年,它提供了大量的功能和改进,以支持开发人员构建高效、响应式的网页应用。 1...

    struts2-dojo-plugin-2.1.8.jar

    struts2-dojo 跨域时解决拒绝访问的问题

    dojo-release-1.4.3

    《Dojo 1.4.3:JavaScript框架的深度解析》 Dojo 是一个功能强大的JavaScript库和开发框架,尤其在构建复杂、可扩展的Web应用程序方面表现卓越。标题"dojo-release-1.4.3"揭示了我们讨论的是Dojo框架的一个特定版本...

    dojo-release-1.9.1-src

    《Dojo Toolkit 1.9.1 源码解析》 Dojo Toolkit,简称Dojo,是一款功能强大的JavaScript库,旨在提供一个完整的、模块化的前端开发解决方案。本压缩包"dojo-release-1.9.1-src"包含了Dojo 1.9.1版本的源代码,对于...

    dojo-release-1.12.2

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,支持MVC模式、数据绑定、模块化代码管理等。`dojo-release-1.12.2`是Dojo框架的一个特定版本,发布于2017年,为开发者提供了稳定且功能完备...

    dojo-0.3.1-ajax

    Dojo是一个开源的JavaScript工具包,为Web开发提供了丰富的功能,包括DOM操作、动画效果、数据存储、用户界面组件以及网络通信等。在0.3.1这个版本中,它对AJAX的支持是其关键特性之一,让我们深入探讨一下这个版本...

    struts2-dojo-plugin-2.3.8

    struts2-dojo-plugin-2.3.8

    struts2-dojo-plugin-2.3.1.2.jar

    struts2-dojo-plugin-2.3.1.2.jar

    struts2-dojo-plugin-2.3.16

    Struts2的使用中出现的版本不符合或者缺少struts2-dojo-plugin-2.3.16的问题,大家可以下载使用。

    struts2-dojo-plugin

    struts2-dojo-plugin-2.1.0的jar包,可以再struts中使用dojo......

    struts2-dojo-plugin-2.3.24

    struts2-dojo-plugin-2.3.24日期控件9-12月乱码解决后jar包

    struts2-dojo-plugin-2.3.15.3.jar.zip

    在"struts2-dojo-plugin-2.3.15.3.jar"这个文件中,包含了实现Struts2与Dojo集成所需的所有类和资源。这包括Action、Interceptor、Result以及其他辅助类,它们使得Struts2能够识别并处理Dojo相关的请求。此外,还...

    dojo-release-1.6.0-src

    它是在几个项目捐助基础上建立起来的(nWidgets,Burstlib,f(m)),这也是为什么叫它a"unified"toolkit的原因。Dojo的目标是解决开发DHTML应用程序遇到的那些,长期存在、历史问题。historicalproblemswithDHTML跨浏览器...

    dojo-release-1.0.2

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,尤其在构建复杂的、企业级的AJAX应用程序方面表现出色。"dojo-release-1.0.2"是Dojo框架的一个早期版本,发布于2008年,这个版本在当时包含...

    struts2-dojo-plugin-2.1.6.jar 解决了datetimepicker显示月份乱码的问题

    struts2-dojo-plugin-2.1.6.jar 解决了datetimepicker显示月份乱码的问题,显示9、10、11、12月份时出现乱码,本包修改了该bug

Global site tag (gtag.js) - Google Analytics