The Dojo Foundation is a non-profit organization designed to promote the adoption of the toolkit.
markup and CSS
style declarations that can be used to enrich websites with various interactive features that work across browsers:
- 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 comfortable forms, and routines for validating form input
- Calendar-based date selector, time selector, and clock
- Inline rich text editor
- Core widget set (dijit) accessible to low vision, screen reader, and keyboard-only users—screen reader accessibility implemented via Accessible Rich Internet Applications (ARIA) Specification (WAI-ARIA) and supported in Firefox
. Dojo provides an abstracted wrapper (
) around various web browsers' implementations of XMLHttpRequest, which can also use other transports (such as hidden IFrames
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).
Client-side data storage
In addition to providing support functions for reading and writing [cookie|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
, 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 encapsulated 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
- 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)
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.
For comfortable development with Dojo you can use the Aptana IDE
. There is a community-version of Aptana and a 21-day trial of Komodo. Dojo-Plugins are available for both (currently Dojo 0.4.3 & 0.9.0). For WYSIWYG development using Dojo, you can use the open source WaveMaker Visual Ajax Studio
Dojo Foundation and Sponsorship
and Sun Microsystems
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
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 inclusion to the Dojo Toolkit:
- Psych Desktop (to be renamed "Lucid Desktop")
Applications showcasing dojo
- Druid OSE, an Open Source Unified Communications Project based on Asterisk