BookRags.com Literature Guides Literature
Guides
Criticism & Essays Criticism &
Essays
Questions & Answers Questions &
Answers
Lesson Plans Lesson
Plans
My Bibliography Periodic Table U.S. Presidents Shakespeare Sonnet Shake-Up
Research Anything:        
History | Encyclopedias | Films | News | Create a Bibliography | More... Login | Register | Help
Not What You Meant?  There are 35 definitions for Toolkit.  Also try: Dojo.

Dojo Toolkit

Print-Friendly
About 5 pages (1,465 words)

Bookmark and Share Know this topic well? Help others and get FREE products!

The Dojo toolkit is a modular open source JavaScript toolkit (or library), designed to ease the rapid development of JavaScript- or Ajax-based applications and web sites. It was started by Alex Russell in 2004 and is dual-licensed under the BSD License and the Academic Free License. The Dojo Foundation is a non-profit organization designed to promote the adoption of the toolkit.

Contents

Features

Widgets

Dojo widgets are prepackaged components of JavaScript code, HTML markup and CSS style declarations that can be used to enrich websites with various interactive features that work across browsers:

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 being done with the JavaScript command 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.

JavaScript programming

A number of Dojo features facilitate programming in JavaScript:

  • Abstraction of the execution environment; Dojo provides facilities for detecting and dealing with the differences between various web browsers and other JavaScript execution environments (such as Rhino).
  • Dojo supports the development and distribution of custom reusable widgets and includes a library of DOM manipulation utilities.
  • An event system which allows code to be marked for execution not only on DOM events but on arbitrary events such as calls to a particular function; this enables more robust use of aspect-oriented programming than is typically seen in JavaScript.
  • An abstracted interface for the manipulation of JavaScript classes which provides subclassing functionality and allows extension of existing classes through a set of utility functions instead of direct manipulation of object prototypes.
  • A mechanism for currying JavaScript functions.

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 [1], 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 namespace[2]:

  • 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.

Dojo Foundation and Sponsorship

Both IBM[3] and Sun Microsystems[4] have announced official support for Dojo, including code contributions. The Dojo Foundation is a 501(c)(6) non-profit organization founded to promote the adoption of the Dojo Toolkit. Its sponsors and members are:

Criticism

A common criticism of Dojo is the lack of comprehensive documentation. In response to this criticism, since November 2006, Dojo documentation is available with the online Dojo Book and an autogenerated Dojo API.

References

  1. ^ Adobe Flash Player Version Penetration. Adobe website.
  2. ^ Dojo Data (January 11, 2007). Retrieved on 2007-02-03.
  3. ^ IBM Contributes Ajax Software Development Technology to Open Source Community. IBM Press Release (June 5, 2006). Retrieved on 2007-02-03.
  4. ^ "Sun Joins the OpenAJAX Alliance and Dojo Foundation". Sun Microsystems Press Release (June 16, 2006). Retrieved on 2007-02-03.

External links

View More Summaries on Dojo Toolkit
 
Ask any question on Dojo Toolkit and get it answered FAST!
Answer questions in BookRags Q&A and earn points toward
discounted or even FREE Study Guides and other BookRags products!
Learn more about BookRags Q&A
Copyrights
Dojo Toolkit from Wíkipedia. ©2006 by Wíkipedia. Licensed under the GNU Free Documentation License. View a list of authors or edit this article.

Article Navigation
Join BookRagslearn moreJoin BookRags




About BookRags | Customer Service | Report an Error | Terms of Use | Privacy Policy