📄 why dojo the dojo toolkit.mht
字号:
From: <由 Windows Internet Explorer 7 保存>
Subject: Why Dojo? | The Dojo Toolkit
Date: Sun, 2 Dec 2007 16:23:43 +0800
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----=_NextPart_000_0076_01C834FF.B4E9B8A0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
This is a multi-part message in MIME format.
------=_NextPart_000_0076_01C834FF.B4E9B8A0
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://dojotoolkit.org/book/dojo-book-0-9/introduction/why-dojo
=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=3Den xml:lang=3D"en" =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Why Dojo? | The Dojo =
Toolkit</TITLE><!--=0A=
section: docs -->
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dutf-8"><LINK=20
href=3D"/book/dojo-book-0-9/introduction/history" rel=3Dprev><LINK=20
href=3D"/book/dojo-book-0-9/introduction" rel=3Dup><LINK=20
href=3D"/book/dojo-book-0-9/part-1-life-dojo-0" rel=3Dnext><LINK=20
href=3D"/sites/all/themes/dtk/favicon.ico" type=3Dimage/x-icon =
rel=3D"shortcut icon">
<META content=3Den name=3Dlanguage>
<STYLE type=3Dtext/css media=3Dall>@import url( =
/files/css/4538c7b86f5ddf0e20fe837f59d90fef.css );
</STYLE>
<SCRIPT src=3D"http://dojotoolkit.org/dojo/config/6"=20
type=3Dtext/javascript></SCRIPT>
<SCRIPT=20
src=3D"http://dojotoolkit.org/sites/all/modules/dojo/dtk_build/dojo/dojo.=
js"=20
type=3Dtext/javascript></SCRIPT>
<SCRIPT =
type=3Dtext/javascript>dojo.addOnLoad(function(){dojo.addClass(dojo.body(=
),"tundra");});</SCRIPT>
<SCRIPT type=3Dtext/javascript>dojo.require("dojo.parser");</SCRIPT>
<SCRIPT =
type=3Dtext/javascript>document.documentElement.className=3D"js";</SCRIPT=
>
<SCRIPT src=3D"http://dojotoolkit.org/sites/all/themes/dtk/js/common.js" =
type=3Dtext/javascript></SCRIPT>
<SCRIPT type=3Dtext/javascript>
dojo.require("dijit._base.sniff");
</SCRIPT>
<META content=3D"MSHTML 6.00.6000.16544" name=3DGENERATOR></HEAD>
<BODY class=3D"" id=3Dbdy>
<DIV id=3Dpage-block><!-- region_user_header.php -->
<DIV id=3Dlogin-block><SPAN id=3Duser-header> </SPAN> <SPAN =
id=3Dlogin-prompt><A=20
href=3D"http://dojotoolkit.org/user">Login</A></SPAN> <SPAN =
id=3Dregister-prompt><A=20
href=3D"http://dojotoolkit.org/user/register">Register</A></SPAN> =
</DIV><!-- /region_user_header.php -->
<DIV id=3Dbody-block><!-- region_header.php -->
<DIV id=3Dlogo-block>
<DIV id=3Ddojo-logo><A title=3DHome =
href=3D"http://dojotoolkit.org/"><IMG=20
id=3Ddojo-logo-img alt=3D"The Dojo Toolkit"=20
src=3D"http://dojotoolkit.org/sites/all/themes/dtk/img/banner-logo-text.g=
if"></A>=20
</DIV>
<DIV id=3Dsearch-block>
<FORM id=3Dsearch-theme-form action=3D/search/node method=3Dpost>
<DIV>
<H6 class=3Dhidden><LABEL =
for=3Dsearch_theme_form_keys>Search</LABEL></H6>
<DIV class=3Dcontainer-inline id=3Dsearch>
<DIV class=3Dform-item><INPUT class=3Dform-text =
id=3Dedit-search-theme-form-keys=20
title=3D"Enter the terms you wish to search for." maxLength=3D128 =
size=3D25=20
name=3Dsearch_theme_form_keys><BUTTON class=3Dform-submit =
id=3Dedit-submit-1 name=3Dop=20
type=3Dsubmit><SPAN class=3Dhidden>Search</SPAN></BUTTON> <INPUT=20
id=3Dedit-search-theme-form type=3Dhidden value=3Dsearch_theme_form =
name=3Dform_id>=20
<INPUT id=3Da-unique-id type=3Dhidden =
value=3D3edd3b3e8d53e72372c703564104486c=20
name=3Dform_token> </DIV></DIV></DIV></FORM></DIV></DIV><!-- =
/region_header.php -->
<DIV id=3Dglobal-menu-block>
<UL id=3Dglobal-menu>
<LI id=3Dnav-about><A class=3Dplink =
href=3D"http://dojotoolkit.org/about">About</A>=20
<LI id=3Dnav-demos><A class=3Dplink =
href=3D"http://dojotoolkit.org/demos">Demos</A>=20
<LI id=3Dnav-downloads><A class=3Dplink=20
href=3D"http://dojotoolkit.org/downloads">Downloads</A>=20
<LI id=3Dnav-documentation><A class=3Dplink=20
href=3D"http://dojotoolkit.org/docs">Documentation</A>=20
<LI id=3Dnav-support><A class=3Dplink=20
href=3D"http://dojotoolkit.org/support">Support</A>=20
<LI id=3Dnav-community><A class=3Dplink=20
href=3D"http://dojotoolkit.org/community">Community</A>=20
<LI id=3Dnav-fullmenu><A onclick=3D"return false;"=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/introduction/why-dojo#f=
ullmenu">Full=20
Menu</A> </LI></UL></DIV><!-- region_banner.php -->
<DIV class=3Dbanner-docs id=3Dbanner-block>
<DIV id=3Dsection-heading>
<P>Documentation</P></DIV>
<DIV id=3Dsection-subheading>
<P>learn about the dojo toolkit</P></DIV></DIV><!-- /region_banner.php =
-->
<DIV id=3Dtop-breadcrumb-block>
<DIV class=3Dbreadcrumb><A href=3D"http://dojotoolkit.org/">Home</A> =
=C2=BB <A=20
href=3D"http://dojotoolkit.org/book/dojo-book-0-9-0">The Book of =
Dojo</A> =C2=BB <A=20
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/introduction">Introduct=
ion</A> =C2=BB=20
Why Dojo?</DIV></DIV>
<DIV id=3Dcontent-block>
<DIV class=3Dcols-narrow-wide>
<DIV class=3D"col-a content-region-container" =
id=3Dsidebar-left-container>
<DIV class=3Dcontent-block><!-- Block: menu -->
<DIV class=3D"block block-menu" id=3Dblock-menu-572>
<H2 class=3Dtitle>The Book of Dojo</H2>
<DIV class=3Dcontent>
<UL class=3Dmenu>
<LI class=3Dexpanded id=3Dmenu-item-296><A=20
href=3D"http://dojotoolkit.org/book/dojo-book-0-9-0">The Book of =
Dojo</A>=20
<UL class=3Dmenu>
<LI class=3Dleaf id=3Dmenu-item-312><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-1-life-dojo/quick-=
installation">Quick=20
Installation</A>=20
<LI class=3Dleaf id=3Dmenu-item-652><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/hello-world-tutorial">H=
ello=20
World</A>=20
<LI class=3Dleaf id=3Dmenu-item-651><A=20
=
href=3D"http://dojotoolkit.org/book/book-dojo/part-4-meta-dojo-making-you=
r-dojo-code-run-faster-and-better/debugging-facilities/deb">Debugging=20
Tutorial</A>=20
<LI class=3Dexpanded id=3Dmenu-item-297><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/introduction">Introduct=
ion</A>=20
<UL class=3Dmenu>
<LI class=3Dleaf id=3Dmenu-item-321><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing"=
>Licensing</A>=20
<LI class=3Dleaf id=3Dmenu-item-318><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/introduction/history">H=
istory</A>=20
<LI class=3Dleaf id=3Dmenu-item-456><A class=3Dactive=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/introduction/why-dojo">=
Why=20
Dojo?</A> </LI></UL>
<LI class=3Dcollapsed id=3Dmenu-item-324><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-1-life-dojo-0">Par=
t 1:=20
Life With Dojo</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-298><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit-0">Part =
2:=20
Dijit</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-299><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dij=
it-and-dojo-0">Part=20
3: JavaScript With Dojo and Dijit</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-300><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo-0">Par=
t 4:=20
Testing, Tuning and Debugging</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-301><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-5-dojox-extensions=
-dojo-0">Part=20
5: DojoX</A> </LI></UL>
<LI class=3Dcollapsed id=3Dmenu-item-54><A title=3D"The Dojo Book, =
0.4"=20
href=3D"http://dojotoolkit.org/book/dojo-book-0-4">The Dojo Book, =
0.4</A>=20
</LI></UL></DIV></DIV></DIV></DIV>
<DIV class=3D"col-b content-region-container">
<DIV id=3Dmain-container><!-- main_content region -->
<H2>Why Dojo?</H2><!--Node: -->
<DIV class=3D"node sticky">
<DIV class=3Dsubmitted>Submitted by alex on Fri, 07/06/2007 - =
06:39.</DIV>
<DIV class=3Dcontent>Today there are several high-quality JavaScript =
toolkits=20
available and several hundred other toolkits of varying quality and=20
completeness. Why, out of that sea of possible options, should you chose =
Dojo?=20
<P>
<UL>
<LI><B>Breadth and Depth:</B> Dojo is the "full stack". Instead of =
cobbling=20
together components from several different sources, Dojo allows each =
component=20
to build on a trusted set of high-quality building blocks by providing =
integrated infrastructure and a wide variety of optional modules. =
These=20
components provide good solutions to common user experience problems =
and can=20
be easily tweaked to meet your needs. From pane-based layouts to =
client-side=20
charting and graphing to data binding to a time-tested module system, =
Dojo is=20
solid infrastructure for delivering great experiences.=20
<LI><B>Quality:</B> Infrastructure for internationalization and =
accessibility=20
is woven through the entire fabric of Dojo. Keystrokes are hinted =
correctly.=20
The components all fit together as a cohesive whole. Everything is=20
customizable easily with CSS, but very little needs to be tweaked to =
get a=20
great looking UI nearly everywhere. These are the hallmarks of a =
system which=20
has been designed and tested to deliver great experiences, not only to =
users,=20
but also to designers and developers.=20
<LI><B>Performance:</B> Dojo is used on high-profile, high-traffic =
sites every=20
day and Dojo's build tools are a key reason why. Dojo's package system =
makes=20
it easy to manage large-scale UI development projects and the build =
system=20
layers on top to make your applications scream; all without code =
changes. Dojo=20
also packs high-performance implementations of common utilties into =
its core,=20
and the rebuild of Dojo for 0.9 focuses heavily on performance and =
reduced=20
code footprint. The result is a small, tight toolkit that is blazing =
fast.=20
Dojo's performance alone makes it an ideal platform to extend and =
build on.=20
<LI><B>Community:</B> Dojo is an open community. As a result many =
individuals=20
and companies have been able to come together on a level playing field =
to=20
build tools that benefit everyone. The licensing of the toolkit is =
designed to=20
be as apolitical as possible and we work hard to ensure that getting =
your=20
itches scratched is easy if you are willing to get involved. All =
development=20
happens in the open and the barriers to entry are <A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-4/part-9-dojo-community/g=
etting-involved">intentionally=20
very low</A>. We don't care where you work or how "qualified" you are, =
all we=20
care is that you want to build products that makes user experiences =
better.=20
Designer or developer or doc writer, the community Dojo values =
contributions=20
of every kind and position in the community is commensurate with the =
quality=20
of the work you do, not political wrangling. We're working to change =
the=20
notions of who can be contributors in Open Source and we invite you to =
join us=20
in charting a new path. If you want to build a great product and think =
you can=20
help us, we want to hear from you.</LI></UL>
<P></P>
<H3>Dojo vs. Other Toolkits</H3>Several other toolkits are often =
compared to=20
Dojo. What follows is not a comprehensive comparison, but rather a =
high-level=20
comparison of the features and design goals of these alternatives and =
how they=20
compare to Dojo's features, development process, and philosophy.=20
<P>
<UL>
<LI><B>MochiKit:</B> MochiKit is a high-quality JavaScript toolkit =
which makes=20
writing JavaScript as pythonic as is reasonably possible while still =
achieving=20
good performance. It follows many of the same conservative principles =
about=20
packaging, naming, and global namespace usage as Dojo. Authored =
primarily by=20
Bob Ippolito, it has great docs and tests but unlike Dojo does not =
ship with a=20
widget system or extensive component set. Some code is shared between =
Mochi=20
and Dojo (under CLA, of course). Mochi is not backed by a foundation =
and code=20
lineage is not verified but it is very liberally licensed.=20
<LI><B>Prototype+Scriptaculous:</B> These pervasive libraries provide =
much of=20
the same functionality as Dojo Core but do not share the same =
conservative=20
philosophy regarding global namespace contention, favoring shorter =
naming of=20
commonly used functions over other concerns. They feature good =
documentation=20
and broad community support as well as tight integration with Ruby On =
Rails=20
(among other frameworks). Scriptaculous provides some controls =
(auto-complete,=20
sliders, etc.) but is not a widget toolkit and does not have support =
for=20
building widgets easily. Many add-on libraries are available for=20
Prototype+Scriptaculous but they are not distributed with the library =
as such.=20
They do not feature a package or build system (aside from their own=20
distributables). Prototype and Scriptaculous are not backed by a =
foundation and code lineage is not verified but they are very =
liberally=20
licensed.=20
<LI><B>YUI:</B> YUI is developed in-house at Yahoo and features =
extensive,=20
high-quality documentation and examples. Designed for speed and =
targeted at a=20
population of professional PHP developers, YUI is designed with the =
needs of=20
Yahoo-scale applications in mind. A growing list of controls is =
available with=20
the toolkit as are useful CSS normalizing and layout style sheets. No =
package=20
system is available, but "roll up" files of common functionality are=20
distributed and documentation makes clear what order to load files in. =
No CSS=20
query or markup-driven widget construction system is available in YUI. =
YUI has=20
an active community and liberal licensing but external committers are =
not=20
allowed on the project and Yahoo has not clarified the code lineage =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -