SlideShare una empresa de Scribd logo
1 de 34
By Amit Tyagi
   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).
   Dojo makes creating Web applications ( web
    2.0) simpler and quick.
   Helps in handling of the Cross Browser
    Development.
   Download from
    http://download.dojotoolkit.org
   SVN and git checkout also available.
   Size 26KB (gzipped)
   Bootstrap
   Host and Browser detection (browser,
    SpiderMonkey, Rhino, Appcelerator Titanium,
    AIR)
    Package system
    JavaScript enhancements
    Query, DOM, Ajax, Events, FX
<html>
 <head>
  <title>Dojo!</title>
  <script type="text/javascript"
 src="/path/to/dojo.js"> </script>
 </head>
 <body> </body>
</html>
<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
   useCustomLogger: anything != false
   require: ['dojo.fx', 'dojo.string']
   defaultDuration: 200 // int milliseconds
   Dojo comes with Firebug lite, if FireBug is not
    installed .

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")
   dojo.isMoz
   dojo.isFF
   dojo.isIE
   dojo.isAIR
   dojo.isOpera
   dojo.isKhtml
   dojo.isWebKit
   dojo.isSafari
   dojo.isChrome
   dojo.isQuirks
dojo.declare()
<script type="text/javascript">
dojo.declare("MyObj", null, {
say: function(msg){ console.log(msg); }
});
var obj = new MyObj;
obj.say("Hi!");
</script>
dojo.extend()
<script type="text/javascript">
dojo.extend(MyObj, {
sayUpperCase: function(msg){ this.say(msg.toUpperCase()); }
});
var obj = new MyObj;
obj.sayUpperCase("Hi!");
</script>
dojo.mixin()
<script type="text/javascript">
var obj = { firstName: "chris", lastName:
 "barber" };
var emp = dojo.mixin({ title: "hacker" }, obj);
</script>
<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>
   dojo.byId()
   dojo.body()
   dojo.create()
   dojo.destroy()
   dojo.attr()
   dojo.style()
   dojo.place()
   dojo.addOnLoad()
   dojo.addOnUnload()
   dojo.connect()/ dojo.disconnect()
   dojo.subscribe
   dojo.publish
   dojo.unsubscribe()
   dojo.xhr()
   dojo.xhrGet()
   dojo.xhrPost()
   dojo.deferred
   dojo.fadeIn(), dojo.fadeOut()
   dojo.animateProperty()
Dojo Core
   Unified Data API     • Utilities
    ◦ dojo.data             • dojo.string
   Drag n Drop             • dojo.date
    ◦ dojo.dnd              • dojo.regexp
   Advanced FX          • I/O Transports
    ◦ dojo.fx               • dojo.io.iframe
   Internationalizati      • dojo.io.script
    on                      • dojo.rpc
    ◦ dojo.i18n          • Browser History
   Google Gears            • dojo.back
    ◦ dojo.gears         • OpenAjax
Dijit
   Dojo's widget system
   Huge library of existing widgets
    ◦   Form elements
        Buttons, drop downs, input fields, etc
    ◦   Layout widgets
        Content pane, accordions, tab container, stack container,
        etc
    ◦   Rich experience widgets
   Tree, progress bar, dialog, tooltip, menu, rich
    text editor, etc
   Accessibility (a11y)
   Templated - externalized HTML templates
   Themes (tundra, soria, nihilo, noir)
   constructor()
   postMixInProperties()
   buildRendering()
   postCreate()
   startup()
   BorderContainer
   ContentPane
   LinkPane
   TabContainer
   AccordionContainer
   SplitContainer
   StackContainer
Dojox
   Place for extra stuff
   Stuff that isn't ready for prime time
    ◦ (i.e. dojox.grid)
   dojox.analytics             • dojox.form
    ◦ Client monitoring           – Additional form
                                    widgets
   dojox.charting              • dojox.fx
   dojox.cometd                  – Cool FX
   dojox.data                  • dojox.gfx
    ◦ Tons of data stores         – Cross-browser vector
   dojox.dtl                   • graphics (SVG/VML)
    ◦ Django template library   • dojox.gfx3d
   dojox.embed                 • dojox.grid
                                  – Grid widget
    ◦ Embed Flash, QuickTime
   dojox.highlight           • dojox.rpc
    ◦ Syntax highlighting     • dojox.secure
   dojox.image                  • Sandboxing
    ◦ Lightboxes,
      slideshow,gallery,      • dojox.storage
      magnifier                  • Persistent client-
   dojox.io                       side storage
    ◦ Additional transports   • dojox.widgets
   dojox.layout                 • Additional dijit
    ◦ Dijit layout widgets         widgets
   dojox.off                 • dojox.xmpp
    ◦ Offline support
                                 • XMPP client
   Build system
   DOH - Dojo Objective Harness
    ◦ Testing framework
   Reduce number of files sent over the wire
   Reduce JavaScript file sizes
   Profiles
   Layers
   Build script
   Executes Java, Rhino
   Compiles modules into layer .js files
   Strips whitespace, comments, console.*(), etc
   Minification (i.e. "var something = 123;" becomes
    "var _0=123;"
   Inlines widget HTML templates & @import CSS
Build script in /util/buildscripts
  build.sh (GNU/Linux, MacOSX, Solaris, Unix)
  build.bat (Windows)
Pre-defined profiles in /util/buildscripts/profiles
  base
  cometd
  demos-all
  dtkapi
  fx
  layers
  offline
  rhino
  sql
  standard
  standardCustomBase
  storage
   API Docs
    ◦ http://api.dojotoolkit.org
   Online Docs
    ◦ http://docs.dojocampus.org
   Blogs
    ◦ http://dojotoolkit.org/rss.xml
    ◦ http://dojocampus.org/content/feed
How dojo works
How dojo works

Más contenido relacionado

La actualidad más candente

Dojo javascript toolkit
Dojo javascript toolkit Dojo javascript toolkit
Dojo javascript toolkit Predhin Sapru
 
Moving to Dojo 1.7 and the path to 2.0
Moving to Dojo 1.7 and the path to 2.0Moving to Dojo 1.7 and the path to 2.0
Moving to Dojo 1.7 and the path to 2.0James Thomas
 
Introduction To Dojo
Introduction To DojoIntroduction To Dojo
Introduction To Dojoyoavrubin
 
Rich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitRich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitalexklaeser
 
Building Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsBuilding Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsAndrew Ferrier
 
jQuery Tips Tricks Trivia
jQuery Tips Tricks TriviajQuery Tips Tricks Trivia
jQuery Tips Tricks TriviaCognizant
 
JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)jeresig
 
Building Dojo in the Cloud
Building Dojo in the CloudBuilding Dojo in the Cloud
Building Dojo in the CloudJames Thomas
 
Component-Oriented Web Development with Dart
Component-Oriented Web Development with DartComponent-Oriented Web Development with Dart
Component-Oriented Web Development with DartC4Media
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)jeresig
 
Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)jeresig
 
State of jQuery and Drupal
State of jQuery and DrupalState of jQuery and Drupal
State of jQuery and Drupaljeresig
 
Getting Started with jQuery
Getting Started with jQueryGetting Started with jQuery
Getting Started with jQueryAkshay Mathur
 
Web component driven development
Web component driven developmentWeb component driven development
Web component driven developmentGil Fink
 
Why and How to Use Virtual DOM
Why and How to Use Virtual DOMWhy and How to Use Virtual DOM
Why and How to Use Virtual DOMDaiwei Lu
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overviewjeresig
 

La actualidad más candente (20)

Dojo javascript toolkit
Dojo javascript toolkit Dojo javascript toolkit
Dojo javascript toolkit
 
Moving to Dojo 1.7 and the path to 2.0
Moving to Dojo 1.7 and the path to 2.0Moving to Dojo 1.7 and the path to 2.0
Moving to Dojo 1.7 and the path to 2.0
 
Introduction To Dojo
Introduction To DojoIntroduction To Dojo
Introduction To Dojo
 
Dojo tutorial
Dojo tutorialDojo tutorial
Dojo tutorial
 
Rich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitRich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkit
 
Building Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsBuilding Real-World Dojo Web Applications
Building Real-World Dojo Web Applications
 
dojo.Patterns
dojo.Patternsdojo.Patterns
dojo.Patterns
 
jQuery Tips Tricks Trivia
jQuery Tips Tricks TriviajQuery Tips Tricks Trivia
jQuery Tips Tricks Trivia
 
JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)
 
Building Dojo in the Cloud
Building Dojo in the CloudBuilding Dojo in the Cloud
Building Dojo in the Cloud
 
Component-Oriented Web Development with Dart
Component-Oriented Web Development with DartComponent-Oriented Web Development with Dart
Component-Oriented Web Development with Dart
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)
 
The jQuery Library
The  jQuery LibraryThe  jQuery Library
The jQuery Library
 
Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)
 
State of jQuery and Drupal
State of jQuery and DrupalState of jQuery and Drupal
State of jQuery and Drupal
 
Getting Started with jQuery
Getting Started with jQueryGetting Started with jQuery
Getting Started with jQuery
 
bcgr3-jquery
bcgr3-jquerybcgr3-jquery
bcgr3-jquery
 
Web component driven development
Web component driven developmentWeb component driven development
Web component driven development
 
Why and How to Use Virtual DOM
Why and How to Use Virtual DOMWhy and How to Use Virtual DOM
Why and How to Use Virtual DOM
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
 

Similar a How dojo works

How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for youSimon Willison
 
Dojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastDojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastGabriel Hamilton
 
Getting Started with Dojo Toolkit
Getting Started with Dojo ToolkitGetting Started with Dojo Toolkit
Getting Started with Dojo ToolkitThomas Koch
 
Jquery dojo slides
Jquery dojo slidesJquery dojo slides
Jquery dojo slideshelenmga
 
PDF.JS at SwissJeese 2012
PDF.JS at SwissJeese 2012PDF.JS at SwissJeese 2012
PDF.JS at SwissJeese 2012Julian Viereck
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsFabian Jakobs
 
Dojo: Getting Started Today
Dojo: Getting Started TodayDojo: Getting Started Today
Dojo: Getting Started TodayGabriel Hamilton
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichunglittlebtc
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipeilittlebtc
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)jeresig
 
How to start developing apps for Firefox OS
How to start developing apps for Firefox OSHow to start developing apps for Firefox OS
How to start developing apps for Firefox OSbenko
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOSKevin Decker
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsasync_io
 
JavaScript Libraries (@Media)
JavaScript Libraries (@Media)JavaScript Libraries (@Media)
JavaScript Libraries (@Media)jeresig
 

Similar a How dojo works (20)

How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for you
 
Dojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastDojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, Fast
 
Getting Started with Dojo Toolkit
Getting Started with Dojo ToolkitGetting Started with Dojo Toolkit
Getting Started with Dojo Toolkit
 
Jquery dojo slides
Jquery dojo slidesJquery dojo slides
Jquery dojo slides
 
Jquery fundamentals
Jquery fundamentalsJquery fundamentals
Jquery fundamentals
 
PDF.JS at SwissJeese 2012
PDF.JS at SwissJeese 2012PDF.JS at SwissJeese 2012
PDF.JS at SwissJeese 2012
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script Applications
 
Dojo: Getting Started Today
Dojo: Getting Started TodayDojo: Getting Started Today
Dojo: Getting Started Today
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichung
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipei
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
How to start developing apps for Firefox OS
How to start developing apps for Firefox OSHow to start developing apps for Firefox OS
How to start developing apps for Firefox OS
 
DOJO
DOJO DOJO
DOJO
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOS
 
Web2.0 with jQuery in English
Web2.0 with jQuery in EnglishWeb2.0 with jQuery in English
Web2.0 with jQuery in English
 
Node azure
Node azureNode azure
Node azure
 
Dojo training
Dojo trainingDojo training
Dojo training
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.js
 
JavaScript Libraries (@Media)
JavaScript Libraries (@Media)JavaScript Libraries (@Media)
JavaScript Libraries (@Media)
 

Último

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 

Último (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

How dojo works

  • 2. 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).
  • 3. Dojo makes creating Web applications ( web 2.0) simpler and quick.  Helps in handling of the Cross Browser Development.
  • 4. Download from http://download.dojotoolkit.org  SVN and git checkout also available.
  • 5.
  • 6. Size 26KB (gzipped)  Bootstrap  Host and Browser detection (browser, SpiderMonkey, Rhino, Appcelerator Titanium, AIR)  Package system  JavaScript enhancements  Query, DOM, Ajax, Events, FX
  • 7. <html> <head> <title>Dojo!</title> <script type="text/javascript" src="/path/to/dojo.js"> </script> </head> <body> </body> </html>
  • 8. <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  useCustomLogger: anything != false  require: ['dojo.fx', 'dojo.string']  defaultDuration: 200 // int milliseconds
  • 9. Dojo comes with Firebug lite, if FireBug is not installed . 
  • 10. 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")
  • 11. dojo.isMoz  dojo.isFF  dojo.isIE  dojo.isAIR  dojo.isOpera  dojo.isKhtml  dojo.isWebKit  dojo.isSafari  dojo.isChrome  dojo.isQuirks
  • 12. dojo.declare() <script type="text/javascript"> dojo.declare("MyObj", null, { say: function(msg){ console.log(msg); } }); var obj = new MyObj; obj.say("Hi!"); </script> dojo.extend() <script type="text/javascript"> dojo.extend(MyObj, { sayUpperCase: function(msg){ this.say(msg.toUpperCase()); } }); var obj = new MyObj; obj.sayUpperCase("Hi!"); </script>
  • 13. dojo.mixin() <script type="text/javascript"> var obj = { firstName: "chris", lastName: "barber" }; var emp = dojo.mixin({ title: "hacker" }, obj); </script>
  • 14. <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>
  • 15. dojo.byId()  dojo.body()  dojo.create()  dojo.destroy()  dojo.attr()  dojo.style()  dojo.place()
  • 16. dojo.addOnLoad()  dojo.addOnUnload()  dojo.connect()/ dojo.disconnect()  dojo.subscribe  dojo.publish  dojo.unsubscribe()
  • 17. dojo.xhr()  dojo.xhrGet()  dojo.xhrPost()  dojo.deferred
  • 18. dojo.fadeIn(), dojo.fadeOut()  dojo.animateProperty()
  • 20. Unified Data API • Utilities ◦ dojo.data • dojo.string  Drag n Drop • dojo.date ◦ dojo.dnd • dojo.regexp  Advanced FX • I/O Transports ◦ dojo.fx • dojo.io.iframe  Internationalizati • dojo.io.script on • dojo.rpc ◦ dojo.i18n • Browser History  Google Gears • dojo.back ◦ dojo.gears • OpenAjax
  • 21. Dijit
  • 22. Dojo's widget system  Huge library of existing widgets ◦ Form elements Buttons, drop downs, input fields, etc ◦ Layout widgets Content pane, accordions, tab container, stack container, etc ◦ Rich experience widgets  Tree, progress bar, dialog, tooltip, menu, rich text editor, etc  Accessibility (a11y)  Templated - externalized HTML templates  Themes (tundra, soria, nihilo, noir)
  • 23. constructor()  postMixInProperties()  buildRendering()  postCreate()  startup()
  • 24. BorderContainer  ContentPane  LinkPane  TabContainer  AccordionContainer  SplitContainer  StackContainer
  • 25. Dojox
  • 26. Place for extra stuff  Stuff that isn't ready for prime time ◦ (i.e. dojox.grid)
  • 27. dojox.analytics • dojox.form ◦ Client monitoring – Additional form widgets  dojox.charting • dojox.fx  dojox.cometd – Cool FX  dojox.data • dojox.gfx ◦ Tons of data stores – Cross-browser vector  dojox.dtl • graphics (SVG/VML) ◦ Django template library • dojox.gfx3d  dojox.embed • dojox.grid – Grid widget ◦ Embed Flash, QuickTime
  • 28. dojox.highlight • dojox.rpc ◦ Syntax highlighting • dojox.secure  dojox.image • Sandboxing ◦ Lightboxes, slideshow,gallery, • dojox.storage magnifier • Persistent client-  dojox.io side storage ◦ Additional transports • dojox.widgets  dojox.layout • Additional dijit ◦ Dijit layout widgets widgets  dojox.off • dojox.xmpp ◦ Offline support • XMPP client
  • 29. Build system  DOH - Dojo Objective Harness ◦ Testing framework
  • 30. Reduce number of files sent over the wire  Reduce JavaScript file sizes  Profiles  Layers  Build script  Executes Java, Rhino  Compiles modules into layer .js files  Strips whitespace, comments, console.*(), etc  Minification (i.e. "var something = 123;" becomes "var _0=123;"  Inlines widget HTML templates & @import CSS
  • 31. Build script in /util/buildscripts build.sh (GNU/Linux, MacOSX, Solaris, Unix) build.bat (Windows) Pre-defined profiles in /util/buildscripts/profiles base cometd demos-all dtkapi fx layers offline rhino sql standard standardCustomBase storage
  • 32. API Docs ◦ http://api.dojotoolkit.org  Online Docs ◦ http://docs.dojocampus.org  Blogs ◦ http://dojotoolkit.org/rss.xml ◦ http://dojocampus.org/content/feed