Dojo Toolkit
File:Dojo.logo.svg | |
---|---|
Developer(s) | Dojo Foundation |
Stable release | 1.4.0 / 2009-7-15 |
Written in | JavaScript |
Operating system | Cross-platform |
Type | JavaScript toolkit (or library) |
License | BSD License and the Academic Free License |
Website | http://dojotoolkit.org |
Dojo Toolkit is an open source modular JavaScript library (or more specifically JavaScript toolkit) designed to ease the rapid development of cross platform, JavaScript/Ajax based applications and web sites. It was started by Alex Russell, Dylan Schiemann, David Schontzler, and others in 2004 and is dual-licensed under the BSD License and the Academic Free License. The Dojo Foundation is a non-profit organization[1] designed to promote the adoption of the toolkit.
Dijit widget system
Widgets
Dojo widgets are components — comprising JavaScript code, HTML markup, and CSS style declarations — that provide cross-browser, interactive features:
- Menus, tabs, and tooltips
- Sortable tables, dynamic charts, and 2-D vector drawings
- Animated effects—fades, wipes and slides—facilities for custom animation effects
- Tree widgets that support drag-and-drop
- Various forms and routines for validating form input
- Calendar-based date selector, time selector, and clock
- Core widgets
Themes
You can use skins such as tundra, soria, and others in order to change the look and feel of dijit.Editor along with all other Dojo elements that are used within the same page. Other online rich-text editor programs such as TinyMCE use independent skinning which can be a disadvantage in comparison to a unified approach.[2]
Features
Asynchronous communication
One important feature of Ajax applications is asynchronous communication of the browser with the server: information is exchanged and the page's presentation is updated without a need for reloading the whole page. Traditionally, this is done with the JavaScript object XMLHttpRequest. Dojo provides an abstracted wrapper (dojo.io.bind
) around various web browsers' implementations of XMLHttpRequest, which can also use other transports (such as hidden IFrames) and a variety of data formats. Using this approach, it is easy to have the data a user enters into a form sent to the server "behind the scenes"; the server can then reply with some JavaScript code that updates the presentation of the page.
Packaging system
Dojo provides a packaging system to facilitate modular development of functionality in individual packages and sub-packages; the base Dojo "bootstrap" script initializes a set of hierarchical package namespaces -- "io", "event", etc. -- under a root "dojo" namespace. After initialization of the root namespace any Dojo package can be loaded (via XMLHttpRequest or other similar transport) by using utility functions supplied in the bootstrap. It is also possible to initialize additional namespaces within or parallel to the "dojo" namespace, allowing extensions of Dojo or the development of private Dojo-managed namespaces for third-party libraries and applications.
Dojo packages can consist of multiple files, and can specify which files constitute the entire package. Any package or file can also specify a dependency on other packages or files; when the package is loaded, any dependencies it specifies will also be loaded.
Workarounds for cross-domain loading of most Dojo packages are provided (though this requires a specialized build of Dojo).
Dojo also provides a mechanism for building "profiles"; the build system takes as input a list of packages, and uses Apache Ant to create a single compressed JavaScript file containing those packages and all their dependencies. This allows all necessary code to be loaded and initialized at once, and permits caching of the code (most web browsers do not cache files loaded via XMLHttpRequest). Pre-built profiles for some common use cases are available for download from the same location as the full toolkit.
Client-side data storage
In addition to providing support functions for reading and writing cookies, Dojo also provides a local, client-side storage abstraction named Dojo Storage. Dojo Storage allows web applications to store data on the client-side, persistently and securely and with a user's permission. It works across existing web browsers, including Internet Explorer, Firefox, and Safari. When included in a web page, Dojo Storage determines the best method for persistently storing information. On Firefox 2, it uses native browser persistence; on other browsers it uses a hidden Flash applet. With Flash 6+ being installed on about 95% of computers connected to the web,[3] this makes the storage mechanism accessible for much of the web's installed base. For a web application that is being loaded from the file system (i.e. from a file:// URL), Dojo Storage will transparently use XPCOM on Firefox and ActiveX on Internet Explorer to persist information. The programmer using Dojo Storage is abstracted from the storage mechanism used, and is presented with a simple hash table abstraction, with methods such as put() and get().
Server-side data storage
As of January 2007, Dojo includes the following example server-side datastore implementations in the dojo.data namespace[4]:
- CsvStore: a read-only store that reads tabular data from comma-separated values files
- OpmlStore: a read-only store that reads hierarchical data from OPML format files
- YahooStore: a read-only store that fetches search results from the Yahoo! Search web service
- DeliciousStore: a read-only store that fetches bookmarks from the del.icio.us web service
- RdfStore: a read-write store that uses SPARQL to talk to RDF data servers including, for example, the Rhizome RDF application server.
Support for Adobe Integrated Runtime (AIR)
Dojo can be used in javascript-based Adobe AIR applications. It has been modified to meet AIR's security requirements.
Sitepen, a Dojo consulting company, has made an Adobe AIR application called "Dojo Toolbox" using Dojo. It includes an API viewer, and a GUI to Dojo's build system. Normally, the build system is run from within Rhino, but in this AIR application the build system can be run from AIR, without use of java.[5]
Developing Dojo
Dojo development can be done with any suitable editor. Some examples are Netbeans IDE, Eclipse IDE, Aptana IDE, and Komodo. Netbeans and Eclipse are Free software while there are community-versions of both Aptana and Komodo. Dojo-Plugins are available for many IDEs. For WYSIWYG development using Dojo, one can use the open source WaveMaker Visual Ajax Studio.
Dojo Foundation and sponsorship
Both IBM[6] and Sun Microsystems[7] have announced official support for Dojo, including code contributions.
Zend Technologies, the company behind the PHP core, has announced a partnership with Dojo, to incorporate it to the Zend Framework[8]
The Dojo Foundation is a 501(c)(6) non-profit organization founded to help open source projects. Its primary goals are to aid in adoption by companies, and encourage projects in the foundation to collaborate with one another[1].
Its sponsors and members are:
- IBM
- Sun Microsystems
- JotSpot
- SitePen
- Renkoo
- AOL
- TurboAjax
- OpenLaszlo
- Nexaweb
- Bea Systems
The Dojo Foundation also helps the following projects, in inclusion to the Dojo Toolkit:
See also
References
- ↑ 1.0 1.1 The Dojo Foundation - Donate
- ↑ [1]
- ↑ "Adobe Flash Player Version Penetration". Adobe website. http://www.adobe.com/products/player_census/flashplayer/version_penetration.html.
- ↑ "Dojo Data". 2007-01-11. http://manual.dojotoolkit.org/Book105. Retrieved 2007-02-03.
- ↑ [2]
- ↑ "IBM Contributes Ajax Software Development Technology to Open Source Community". IBM Press Release. 2006-06-05. http://www-03.ibm.com/press/us/en/pressrelease/19767.wss. Retrieved 2007-02-03.
- ↑ ""Sun Joins the OpenAJAX Alliance and Dojo Foundation"". Sun Microsystems Press Release. 2006-06-16. http://www.sun.com/smi/Press/sunflash/2006-06/sunflash.20060616.1.xml. Retrieved 2007-02-03.
- ↑ Dojo and Zend Framework Partnership Announcement
- ↑ [3]
Bibliography
- Orchard, Leslie M. (November 24, 2008). Concise Guide to Dojo (1st ed.). Wrox Press. pp. 264. ISBN 978-0470452028. http://www.wrox.com/WileyCDA/WroxTitle/Concise-Guide-to-Dojo.productCd-0470452021.html.
- Russell, Matthew A. (June 24, 2008). Dojo: The Definitive Guide (1st ed.). O'Reilly Media. pp. 500. ISBN 978-0596516482. http://oreilly.com/catalog/9780596516482/.
- Riecke, Craig; Gill, Rawld; Russell, Alex (June 18, 2008). Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences (1st ed.). Pragmatic Bookshelf. pp. 568. ISBN 978-1934356111. http://www.pragprog.com/titles/rgdojo.
- Holzner, Steven (December 14, 2008). The Dojo Toolkit: Visual QuickStart Guide (1st ed.). Peachpit Press. pp. 208. ISBN 978-0321605122. http://www.peachpit.com/store/product.aspx?isbn=0321605128.
- Zammetti, Frank (September 19, 2008). Practical Dojo Projects (1st ed.). Apress. pp. 500. ISBN 978-1430210665. http://www.apress.com/book/view/1430210664.
- Hayes, Kyle (November 17, 2009). Getting StartED with Dojo JavaScript Toolkit (1st ed.). Friends of Ed. pp. 350. ISBN 978-1430225218. http://www.friendsofed.com/book.html?isbn=9781430225218.
- Svensson, Peter (November 24, 2008). Learning Dojo (1st ed.). Packt Publishing. pp. 264. ISBN 978-1847192684. http://www.packtpub.com/tutorial-for-building-interactive-interfaces-with-dojo/book.
- Harmon, James E. (June 21, 2008). Dojo: Using the Dojo JavaScript Library to Build Ajax Applications (1st ed.). Addison-Wesley Professional. pp. 336. ISBN 978-0132358040. http://www.informit.com/store/product.aspx?isbn=0132358042.
- Orchard, Leslie M.; Pehlivanian, Ara; Koon, Scott; Jones, Harley (August 31, 2009). Professional JavaScript Frameworks: Prototype,YUI, ExtJS, Dojo and MooTools (1st ed.). Wrox Press. pp. 888. ISBN 978-0470384596. http://www.wrox.com/WileyCDA/WroxTitle/Professional-JavaScript-Frameworks-Prototype-YUI-ExtJS-Dojo-and-MooTools.productCd-047038459X.html.
External links
- dojotoolkit.org, official Dojo site, with demos
- The Book of Dojo
- Dojo Foundation
- Infoworld review of Ajax toolkits, 31 July 2006
- Dojo Overview
|
|
de:Dojo Toolkit es:Dojo toolkit fr:Dojo Toolkit pl:Dojo Toolkit ru:Dojo th:Dojo Toolkit
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...