您的浏览历史

Dojo权威指南 (china-pub 全国首发)

促销活动
  • [本书]参加机械工业出版社华章公司满58元赠书活动
精彩评论

基本信息

编辑推荐

DOJO之父推荐
国内首部DOJO图书
向读者展示了如何充分利用Dojo工具箱中包含的大量实用特性,以前所未有的效率开发出功能丰富、响应敏捷的Web应用程序。

推荐阅读
Dojo构建Ajax应用程序..

市场价:¥45.00
4-5星价:¥36.00
[购买] [收藏]
精通Dojo(Dojo之父执笔的权威之作)..

市场价:¥69.00
4-5星价:¥53.13
[购买] [收藏]

内容简介回到顶部↑

通过使用Dojo这个工业强度的JavaScript工具箱,我们可以比使用其他任何Ajax框架更高效、更容易地创建JavaScript或Ajax驱动的应用程序和站点。
  本书向读者展示了如何充分利用Dojo工具箱中包含的大量实用特性,以前所未有的效率开发出功能丰富、响应敏捷的Web应用程序。读者通过本书能够学习到创建复杂布局和表单控件(常见于高级桌面应用程序)的技巧,掌握精妙的JavaScript独有特性和通信机制。另外,读者还可以:
  了解适用于Dojo1.x版本的简明介绍。
  研究大量Dojo应用实例及经过测试的代码。
  探索Dojo的标准JavaScript库和基础实用程序。
  学习拖放、后退按钮处理及动画。
  创建并利用Dijit(Dojo部件)。
  浏览DojoX子项目、构建工具和Dojo的单元测试框架。
  无论读者是使用DHTML构建Web应用程序的自由开发人员,还是大型开发团队中的一员,本书都可以帮你利用已知的设计理念,将自己的构想迅速付诸实践。

作译者回到顶部↑

本书提供作译者介绍

Dojo工具箱共同创始人Matthew A.Russell是一位计算机科学家,他目前居住在美国田纳西州的富兰克林市。作为一位博学多才的专家,他也非
常喜爱写作和研究前沿技术。
.. << 查看详细

目录回到顶部↑

序. 1
前言 5
第一部分 Base与Core
第1章 Dojo工具箱概述 23
Dojo的架构 23
开发前的准备 27
重要的术语 32
启用Dojo 34
在Firebug中探索Dojo 41
小结 51
第2章 语言及浏览器实用程序 52
查找DOM节点 52
类型检查 53
字符串工具 54
数组处理 55
通过模块管理源代码 60
JavaScript对象实用程序 68
操作对象环境 72
DOM实用程序 76
浏览器实用程序 83

译者序回到顶部↑

平心而论,与现有的JavaScript库或框架相比,Dojo的确很值得O誖eilly为它自己出一本权威指南。.
从译者的Web开发经验来看,在使用JavaScript语言创建跨平台、跨浏览器的RWA(Rich Web Applications,富Web应用程序)项目时,选择Dojo作为前端开发框架基本上可以做到别无所求。因为,对于通常的JavaScript库和框架所能解决的问题蜒DOM操作、事件处理、样式修改、外部通信的标准化,Dojo的Base和Core同样也给出了全套解决方案。
当然,就Dojo工具箱的库和框架部分而言,数据抽象和模拟类与继承是另外两个主要的亮点。
除了对开发RIA项目的底层逻辑提供强大支持外, Dijit专门针对设计人员给出大量即装即用的“部件”。部件就是HTML、JavaScript、CSS和其他相关资源(如图片)的集合,也是一个Function对象。基于Dojo部件的用户界面还支持换肤功能。Util是Dojo独有的,其中包含构建工具、单元测试框架和压缩工具。为优化、测试产品和提高RIA项目的性能提供了有效支持。..
在翻译本书的过程中,为确保技术细节的准确,译者参考了《Mastering Dojo》(The Pragmatic Bookshelf)一书。而且,全书的术语基本上做到了前后统一。需要说明的是,书中将Dojo命名空间之下的所有函数(function)统一译为方法。
虽然翻译为函数也未尝不可,但译者在此有两点考虑:首先,从面向对象的角度讲,通过对象访问的函数应该叫方法;其次,Dojo跟其他的库和框架一样,都非常强调命名空间,翻译为方法有助于读者进一步明确这一思想。另外,书中在谈及易访问性(Accessibility)时,多次提到了“退化能力”。对此存疑的读者,可以参考译者网站中的相关讨论和介绍。
从翻译一本书的角度讲,序和前言部分一般是最难翻译的。译者在翻译Dojo之父Alex Russell为此书作的序时,得到了李锟、郭晓刚、米全喜、贺师俊的帮助,特别是米全喜抽时间审阅了全篇译文,提出了9处问题。在此一并致谢!
本书由李松峰负责翻译,参加翻译工作的还有李丽、秦绪文、程宝杰、宋连海、付荣艳、左艳坡、刘英、李炜、李雅雯、熊俊芹、封耀杰、贾爱华等。译者的网站:http://www.cn-cuckoo.com;电子邮箱地址:lsf.email@yahoo.com.cn。欢迎读者朋友登录译者网站或通过邮件反馈本书翻译中存在的问题,或者提供勘误信息。另外,在本书中文版交稿时,Dojo1.2已经发布。译者翻译了“Dojo1.2发版说明”,有需要的读者可以参考,地址为
http://www.cn-cuckoo.com/2008/12/18/dojo-1-2-release-notes-265.html。...
译者
2008年12月18日于北京

前言回到顶部↑

用户要求现在的Web应用程序应该像桌面应用程序一样。家用计算机已经无处不在,而且Web浏览器是一个开放性平台,因此可以说几乎全世界的每个人都可能成为Web应用程序的终端用户。软件开发人员为创建基于浏览器的应用程序,要花上比过去多得多的时间,因为他们必须满足潜在的百万级用户群的需求——其中很多人手里掌握着数十亿美元的广告预算,而另外一些人则会利用应用程序优雅便捷的特性,吸引更多的人前来浏览访问。.
当然,就因为Web浏览器是开放性平台,并不意味着它是理想的平台——至少当前还不够理想。任何团体利益都不应该凌驾于对各种Web浏览器技术规范的统一实现之上。但让人难以理解的是,相关协议和标准在经历了近20年的发展后,反而导致在浏览器中部署应用程序变得更加困难。这种局面无论如何是任何人都不可能预知的。
但是,在一个拥有想像力和创造力的世界里,总还是有希望的。
幸运的是,JavaScript提供的丰富而强大的功能使得动态操作、定制和增强网页成为可能。而在此基础之上,为开发人员和Web浏览器的不兼容性之间捉供一个隔离层也成为了可能——即使是隔离所有的浏览器。
本书将要介绍的Dojo是一个JavaScript工具箱,它就为开发人员和浏览器的不兼容性之间提供了这样的一个隔离层。为此,Dojo结合了JavaScript和其他有效的Web技术——但是,它并非一个试图重新实现或解决浏览器问题的暂时的表层。无论是那些已经使用了YUI!(注1)的项目,还是因为把负载转移到了客户端而受益的服务器端框架,都能通过Dojo获得更多的特性。
Dojo内置了开发人员由衷期望的标准JavaScript库、大量常见的自定义HTML控件的替代物和CSS布局的高级解决方案,以及方便发布应用程序的构建工具和单元测试框架。Dojo不仅是一个JavaScript工具箱,而且是一个真正的JavaScript工具箱——现在正是学习如何通过它来解放自己并为用户提供各种体验的最佳时机。Dojo正发动Web开发的革命,也必将推动Web开发的迅猛发展。
无论你想实现什么样的Web开发项目,Dojo都能帮助你迅速地把它变为现实,并且保持最低的冗余代码。因此,你得到的将是一个最干净、最容易维护的项目。我最大的希望是读者能够通过本书以最少的时间领会Dojo的本质,并且能够充分利用它完成自己面对的艰巨任务。
为什么选Dojo
当然,目前可供选择的JavaScript工具箱有好几个,那么读者恐怕早就想问“为什么Dojo可以让我们别无所求”这个问题了。从理论上说,基于一门纯解释型语言构建的工具箱或库,它所能做到的事情其他工具箱或库也同样能够做到,很难说其他工具箱做不到的而Dojo能做到。但是,Dojo在它的社区支持、指导思想和许可方式等方面确有其独到之处。
也许读者可以这样来想:理论上,只要有一把锤子、一把铲子和足够的钉子就能够建起房子来,但是那要花多大代价呢?显然,在建房的过程中,如果有机械设备和木匠作伴,那么这个过程就完全不一样了。这个比喻对于Dojo同样适用。接下来,我们就尝试从以下几个方面介绍Dojo的闪光点和它的特征(先后顺序不代表重要性):
社区支持
虽然可以把这一条归结为非技术因素,但Dojo的开放性社区的确是它最大的优势。Dojo基金会作为一个非赢利组织,其设立宗旨是作为厂商中立的Dojo知识产权的监护人,是由IBM、AOL、Sun、OpenLaszlo、Nexaweb、SitePen、BEA、Renkoo和世界各地的DHTML黑客发起和支持的。该基金会资助了Dojo工具箱(以及其他值得关注的项目,如Cometd(注2)、DWR(注3)和Open-Record(注4))。如果这些还不能说明Dojo拥有的强大支持,那么还有什么可以说明呢?
Dojo作为一个自由许可的开源项目,加之其极低的加入门槛,任何人都可以在它的社区中发出自己的声音(如果愿意让别人听到的话)。如果登录IRC并进入freenode.net的#dojo聊天室说话,要想不让该项目的开发人员或参与者听到也是不太可能的。此外,每周一次的IRC会议目前会于每周三下午3点到6点(太平洋标准时间)在#dojo-meeting聊天室举行。这个正式的官方会议讨论的内容既有战略规划,也有战术分析。如果你在开会期间冒然闯进会议室,绝不会遭到拒绝。你可以在里边“偷听”,也可以大胆地主动发言。
能够了解Dojo在战略规划和战术落实方面的信息是非常有吸引力的。在其他JavaScript工具箱和库日益商品化的背景下,Dojo社区越来越显得独树一帜。无论是相关组织,还是开发团队中的一员(更不必说当前正在构建真实站点和应用程序的数千名开发人员),都能通过对Dojo献计献策为它将来的成功夯实基础。
自由(彻底的)许可
Dojo作为开源软件,任何人或组织都可以根据BSD(Berkeley Software Distribution,伯克利软件分发)许可修订版或者AFL(Academic Free License,自由研究许可)2.1版获得不受限制的许可。除了某些个别模块中包含的许可文件之外,开发人员可以根据自己的工作选择想要采用的许可方式。所有外部的参与者必须遵守BSD或AFL许可,所有参与者还必须签署CLA(Contributor License Agreement,贡献者许可协议),以确保Dojo基金会对所有衍生产品具有明确的权利,从而保护Dojo工具箱的所有用户免受知识产权纠纷的困扰。这种许可的彻底性与其他流行的JavaScript工具箱相比,具有明显的不同。
深度和广度
与某些工具箱专注于特定的问题领域不同,Dojo为基于浏览器的开发提供了端到端的解决方案。从标准的库方法到一应俱全的部件(widget),从构建工具到测试框架,无所不包;因此,可以说有了Dojo在手,基本上别无他求。但是,千万不要以为它覆盖面如此之广,代码肯定会臃肿不堪。因为使用构建工具可以生成它的自定义版本,并能够尽量保持应用程序许可的合理化。
虽然广度的增大一般会影响到深度,但这条经验性规则对Dojo却不适用。即使是在Base(为工具箱其他部分捉供基础的微小内核)中,都包含着几乎数不尽的功能,例如,基于CSS3选择符的通用DOM查询机制、Ajax实用方法、对浏览器间事件操作的规范化等。而这些甚至还没有涉及丰富的应用程序、表单库、布局部件或者构建工具。
尽管Dojo的广度和深度带来了不少复杂性,但是它的底层结构仍然由世界上最好的Web黑客在不断地用心改进。无论从代码标准的高质量、统一的命名约定,还是从性能和容易维护方面,都致力于让应用程序开发人员能够更方便地使用它。使用Dojo一定能够创造出引人入胜的用户体验。

序言回到顶部↑

实话实说,我是因为DHTML才中途退学的。.
当时,经常是时钟已经指向了凌晨3点,我还在不停地搜索MSDN文档、W3C规范以及数以百计的comp.lang.javascript帖子,然后又将这些来源的信息综合起来,发表几十个类似于“要是……会怎么样”的帖子。就好像是命中注定的一样,我对每个小小的发现都不轻易放过,除非浏览器能够听命于我,否则决不善罢甘休。那时候,一群志同道合的人在一个小社区中做着同样的事情,大家争先恐后地将每个新发现、新技术或一些能够让Netscape正常运行的小技巧在DHTMLCentral论坛中进行共享。与早晨7点有关拉丁文动词变化的讨论和无休止的Java讲义相比,真正吸引我的还是发现闭包的妙处,或者最终完全理解基于原型的继承。就连整个圣诞节假期,我都沉迷于JavaScript的学习和研究当中。我知道女朋友和父母肯定非常担心我,可他们谁也没有让我分心。于是,在付出了中断学业的代价之后,我对开源(http://opensource.org)有了深刻的理解,也收获了持久的友谊,最终还创建了Dojo。
时过境迁,DHTML黑客的工作也发生了变化。我们掌握了让浏览器听命于自己的大多数技巧,也知道了浏览器之间在哪些地方有重叠之处。我们已经有能力利用它们了……看看Dijit和DojoX中模块的深度和多样性就能体会到这一点。当前,DHTML/Ajax黑客的工作是如何把有效的技术纳入对用户和开发人员的服务当中,而且采取的方式也要比针对终端用户和准开发人员的方式更好。Dojo的故事其实就是这种技术过渡的故事。一个架构,无论它本身有多好,如果不能有效地将它交付给用户,结果还是失败。同样,外表漂亮但却难以维护的图形及界面也不可能得到开发人员的一致认同。如果设计人员或开发人员因此而难于协作,当然无益于我们愿望的达成。令人欣慰的是,Dojo开发团队正在和Web一起走向成熟,而随着Dojo 1.0发布和本书的问世,现在我们终于可以自信地说,Dojo已经完全抵达了成功的彼岸。我们很久以前创立的路线图文档,终于在今天划上了完美的句号。今天,依赖于Dojo创造的完整用户体验,已经带来了每月数十亿的页面流量。而且,很多大型设计人员和开发人员团队正在以这个工具箱为依托,齐心协力地创造更加美好的体验。..
这些成绩的取得绝非一人之功,甚至都不是一个小团队所能企及的。在Dojo发展过程中曾经对它有过贡献(同时对它抱以坚定信心)并致力于共同创造一个更美好的Web的人实在太多了。我们从其他项目中借鉴了我们认为最好的思路和做法,营造了一个高水平的竞技平台,而这个平台的规则无论是对用户、贡献者,还是对发起者都是一视同仁的。Dojo以不争的事实再次向世人证明,开源项目不仅仅是封闭系统可以利用的一个方便的分发模型,其本质在于协作。只要推行用户认同的规则,并且在项目成员之间达成应有的默契,开源项目就能够发展兴盛。在这个工具箱所体现出的各种技术性成果中,我认为最值得自豪的是,我们以真正开放(包括今后可能参与进来的人)、公正的方式实现了它。事实上,这个项目在创建之初,我们就宣布要切实尊重任何形式的贡献,不能仅局限于代码。而且,这个项目也要改变开源软件的发展基调,例如,它应该鼓励面向大学和民间的对话。此外,它应该是一个依赖于社区构建的项目,因而不能把用户看成“他们”——事实上,“他们”即“我们”。鉴于本书明确地传达了这种Dojo工具箱赖以存在的、朴素的开放理念,我们衷心地期待本书读者能够为Dojo将来的发展出谋划策。
在我和Matthew Russell面对面坐在一起的时候,本书差不多快要“出炉”了。开源项目好像就是那么有意思——虽然你和某人共事了好多年,但邮件列表和IRC中的那些只言片语,如果不是因为要谈论本地麦酒(或者,必要时的健力士黑啤)的流行和刺激性口味,恐怕永远都不会发现它们已经落到了实处。直到Matthew和我在旧金山北滩的一家舒适的老式小酒馆中交换意见,我才回到现实:他对技术理解的深度、强烈的求知欲和针对不同读者层次展开讨论的能力,完全够得上一位好老师的标准。因为我是依次审读每一章的草稿,我发现随着审读的进行,自己会根据Matthew逐步展开的阐述陆续删除前面所写的批评意见。Matthew的阐述令Dojo更加平易近人、友好和善,也更加突显了其高效及强大。当读者在阅读本书并与Matthew神交之时,不断进发的、明亮的思想火花所带来的会心一笑,恐怕就是本书最大的礼物了。
像这样坚持与IRC消息及论坛文章的作者见面差不多已经有4年了。在开源项目中,你所接触的每个人几乎都表现为要解决的技术问题、要修复的bug,或者应该要考虑的什么特性。但是,唯有面对面接触才是了解合作者的最佳方式,而且几乎总能让人兴奋不已。每当此时,那些所谓的仁慈、无私、天才等廉价的口号只能让人感到羞愧难当,特别是在一个人人有份的项目中提到个人牺牲的时候尤其如此。Matthew的这本书让我和我所尊重的优秀团队感到十分荣幸。
我并不想建议读者像我一样为了追求某个理想(而且没人会为此付钱给你)就冒然中断自己的学业。但是,如果有一天你的头脑中真地燃起了星星之火,千万不要忽视它。哪怕你因此结识只有我所结识的、妙不可言的、现在已成为我朋友的人的一半,那么再多的不眠之夜也是值得的。...
Alex Russell
Dojo Tootkit共同创始人,Dojo基金会主席

评论交流

共有7人开贴评论  12人参与评论  1人参与打分 查看

0人
 0%
用户平均打分
我要写评论 help如何参与评论和打分
0人
 0%
1人
 100%
0人
 0%
0人
 0%

dxwang
一级评论员
该会员在china-pub购买过此书 精彩书评
评价等级:  
发表于:2009-7-7 0:20:00
刚拿到书时还是有点失望,纸的质量有点差,而且看了译者序就有几个错别字,不过内容还是不错,对深入了解dojo整体框架还是挺有帮助的
回复 ( 1条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得1支)  扔鸡蛋 (得0个)

yangb2008

一级评论员
  
发表于:2009-5-12 10:26:00
非常高兴能有重量级的DOJO的中文翻译,诚如译者所说,DOJO的学习曲线比较难,文档和样例不丰富,dojo的使用太浅,就没有必要使用它了,但想用深些,却没有很全面的比较复杂的样例。
另外,dojo1.3后版本变化比较大,不知道这本书中的样例是基于哪一个版本的?
译者能否再开个BLOG,对于1。3版本的变化做一些相对深入的探讨?
在WEB开发中,我们非常关注:表格数据的定制化和灵活化(中国式报表展现),树形数据的展现风格的定制化和灵活化(带checkBox否?,可否分级打开,而不是一次性全部获取),日历,进度条,多下拉列表的互动,不同框的选择,以及“皮肤”的处理等。
回复 ( 2条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得2个)

cn-cuckoo

三级评论员
  
发表于:2009-9-13 20:45:00
本书第1版第1次印刷的勘误已经做完,并已交给出版社。完整的照片勘误下载页面如下,敬请读者下载核改,谢谢:
http://tinyurl.com/dojo-tdg-errata
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

cn-cuckoo

三级评论员
  
发表于:2009-5-12 19:18:00
@yangb2008网友提到的问题可能也是其他朋友关注的。以下内容摘自本书“前言”部分,供大家参考:

Dojo是一个由活跃的社区支持的发展中的项目,因此,随时可能增加新特性。本书完全针对当前最新的Dojo1.1版本编写。但是,将来的版本可能会增加更多功能。读者应该密切关注Dojo最新版本的发布情况,并确保认真阅读1.1版之后的发版说明。

同样,鉴于Dojo的API在2.0版之前不会有大的变化,因此本书所有示例及相关信息在过渡期的小版本发布过程中会始终保持正确。而且,非正式的不推荐(deprecation)策略表明,一个主版本中被列为不推荐使用的特性,至少应该保持到下一个主版本发布之后才会被削减。换句话说,1.x版本中的某些特性如果被列为不推荐使用的特性,那么至少到2.0版发布之后(甚至更长时间之后)仍然会保持有效。因此,即使读者在拿到本书时Dojo2.0已经发布了,但其中的代码示例也仍然应该能够正常运行。

另外,@yangb2008网友提出的需求,通过Dojo工具箱应该是可以实现的。
回复 ( 2条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得2支)  扔鸡蛋 (得1个)

pioneer127
一级评论员
  
发表于:2009-5-11 22:01:00
怎么样章都没有哦
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共7条)