|Initial release||March 2005|
3.0 / July 24, 2018
|License||The modified BSD license or the Academic Free License (>= 2.1)|
The Dojo Toolkit is organized in several parts:
This article needs to be updated.(November 2012)
dojo.xhr) around various web browsers' implementations of XMLHttpRequest, and
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).
In addition to providing support functions for reading and writing cookies, Dojo formerly supported 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, 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. Dojo Storage is not supported in versions later than the 1.3 release.
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.
|Version number||Release date||Additional notes|
|0.9||2007-09-14 ||Total rewrite.|
|1.0||2007-11-05 ||First stable release.|
|1.4.4||2012-06-22||Maintenance release that adds support for Internet Explorer 9 and Firefox 4+.|
|1.5.0||2010-07-22 ||"Claro" theme.|
|1.6.0||2011-03-15 ||Support HTML5 data attributes.|
|1.7.0||2011-10-27||Start using AMD (Asynchronous Module Definition) API.|
Versions 1.10 through 1.14 continue to receive new point releases as important changes are backported. Version 2.0 was released in 208. Version 2.0 and later drop the word 'toolkit' from name.
Earlier versions of Dojo had a reputation for being bulky and slow to load. It also required extra work to load Dojo across domains, e.g. from a CDN. Addressing these problems was the major goal of Dojo 1.7, which introduced Asynchronous module definition (AMD) and a "nano" loader.
Dojo has long been criticized for its incomplete, scattered, and outdated documentation. Recognizing this, the developers made huge improvements in the documentation for the 1.8 release, including new tutorials, an API browser, filling in the missing pieces, and updating most examples to AMD style.
A number of books have been written about Dojo, but all based upon Dojo 1.3 or earlier, now several years out of date. Since these predate AMD support and its accompanying reorganization, examples in these books almost invariably rely on things that are now deprecated and no longer best practice. Most authors are waiting for Dojo 2.0 before publishing anything new. 
Dojo co-creator Dylan Schiemann acknowledges this as a consequence of their different scopes: "It's certainly easier to learn something that's smaller than something that does more, but our avid users are quick to point out that a bit more learning up front saves them countless hours for things that Dojo makes easy."
This article needs to be updated.(September 2015)
Early users faced a difficult transition to the 1.0 release after the toolkit was totally rewritten. The move to AMD in recent versions has been similarly problematic. Dojo has taken great pains to maintain backward compatibility despite its rapid evolution, with a large portion of the current API deprecated but still maintained, but users have often found that upgrades did not go as smoothly as hoped.
The upcoming 2.0 release is expected to remove much of the deprecated API but be mostly compatible with 1.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.
Its sponsors and members are:
The Dojo Foundation also helps the following projects in addition to the Dojo Toolkit:
In 2006, both IBM and Sun Microsystems announced official support for Dojo, including code contributions. A Gartner report in 2009 noted that IBM support Dojo across 30 of their products.Zend Technologies, the company behind the PHP core, announced a partnership with Dojo in 2008, incorporating the toolkit into the Zend Framework.
Manage research, learning and skills at defaultlogic.com. Create an account using LinkedIn to manage and organize your omni-channel knowledge. defaultlogic.com is like a shopping cart for information -- helping you to save, discuss and share.