Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Dojo Introduction
Dojo is a powerful, open source JavaScript
toolkit (library).
Dojo provide uniform access to Browser APIs
and encapsulates JavaScript
implementations.
Dojo provides pluggable widgets UI(Dijit).
Why Dojo?
Dojo makes creating Web applications ( web
2.0) simpler and quick.
Helps in handling of the Cross Browser
Development.
Dojo Architecture
Dojo Base
Size 26KB (gzipped)
Bootstrap
Host and Browser detection (browser,
SpiderMonkey, Rhino, Appcelerator
Titanium, AIR)
Package system
JavaScript enhancements
Query, DOM, Ajax, Events, FX
Getting Started
<html>
<head>
<title>Dojo!</title>
<script type="text/javascript"
src="/path/to/dojo.js"> </script>
</head>
<body> </body>
</html>
djConfig
<script type="text/javascript"
src="/path/to/dojo.js
djConfig="isDebug:true,parseOnLoad:true"
></script>
debugAtAllCosts: true/false
locale: 'ja-jp'
extraLocale: 'zn-ch'
baseUrl:
'http://www.domain.com/path/to/dojotoolkit'
modulePaths: {'cb1','/js/cb1'}
afterOnLoad: true/false
addOnLoad: function/array
djConfig.isDebug
Package System
dojo.require("dojo.fx")
Downloads /path/to/dojotoolkit/dojo/fx.js
dojo.registerModulePath("cb1", "/js/cb1")
dojo.require("cb1.module")
Downloads /js/cb1/module.js
dojo.require("blah.module")
404 Error: /path/to/dojotoolkit/some/module.js
dojo.provide("cb1.module")
Browser Detection
dojo.isMoz
dojo.isFF
dojo.isIE
dojo.isAIR
dojo.isOpera
dojo.isKhtml
dojo.isWebKit
dojo.isSafari
dojo.isChrome
dojo.isQuirks
dojo.extend()
<script type="text/javascript">
dojo.extend(MyObj, {
sayUpperCase: function(msg){ this.say(msg.toUpperCase()); }
});
var obj = new MyObj;
obj.sayUpperCase("Hi!");
</script>
Contd.
dojo.mixin()
<script type="text/javascript">
var obj = { firstName: "chris", lastName:
"barber" };
var emp = dojo.mixin({ title: "hacker" }, obj);
</script>
dojo.query()
<script type="text/javascript">
var nodes = dojo.query("li"); // can use CSS3
selectors
dojo.query("a").forEach(function(n){
n.innerHTML += "!!";
});
dojo.query("div").style({ padding:"1px",
margin:"0px" });
</script>
DOM functions
dojo.byId()
dojo.body()
dojo.create()
dojo.destroy()
dojo.attr()
dojo.style()
dojo.place()
Events
dojo.addOnLoad()
dojo.addOnUnload()
dojo.connect()/ dojo.disconnect()
dojo.subscribe
dojo.publish
dojo.unsubscribe()
AJAX
dojo.xhr()
dojo.xhrGet()
dojo.xhrPost()
dojo.deferred
FX
dojo.fadeIn(), dojo.fadeOut()
dojo.animateProperty()
Dojo Core
Dojo Core
Drag n Drop
dojo.fx
Internationalizati
on
dojo.dnd
Advanced FX
dojo.data
dojo.i18n
Google Gears
dojo.gears
Utilities
dojo.string
dojo.date
dojo.regexp
I/O Transports
dojo.io.iframe
dojo.io.script
dojo.rpc
Browser History
Dijit
What is Dijit?
Dojo's widget system
Huge library of existing widgets
Form elements
Buttons, drop downs, input fields, etc
Layout widgets
Widget Lifecycle
constructor()
postMixInProperties()
buildRendering()
postCreate()
startup()
Dojox
What is Dojox?
Place for extra stuf
Stuf that isn't ready for prime time
(i.e. dojox.grid)
Tour of Dojox
dojox.analytics
Client monitoring
dojox.charting
dojox.cometd
dojox.data
dojox.form
Additional form
widgets
dojox.dtl
Cool FX
dojox.gfx
Cross-browser
vector
Django template
library
dojox.embed
dojox.fx
Embed Flash,
QuickTime
graphics
(SVG/VML)
dojox.highlight
dojox.image
Additional transports
dojox.layout
Lightboxes,
slideshow,gallery,
magnifier
dojox.io
Syntax highlighting
dojox.of
Offline support
dojox.rpc
dojox.secure
Sandboxing
dojox.storage
Persistent
client-side
storage
dojox.widgets
Additional dijit
widgets
Dojo Util
Build system
DOH - Dojo Objective Harness
Testing framework
Build system
Build script in /util/buildscripts
build.sh (GNU/Linux, MacOSX, Solaris, Unix)
build.bat (Windows)
Resources
API Docs
Online Docs
http://api.dojotoolkit.org
http://docs.dojocampus.org
Blogs
http://dojotoolkit.org/rss.xml
http://dojocampus.org/content/feed