SlideShare a Scribd company logo
1 of 26
Download to read offline
D a m i e n B r u y n d o n c k x
19 Juin 2014
5 things you might
not know about
jQuery
Damien Bruyndonckx
• Coordinateur eLearning à l’Ihecs
• Adobe Education Leader
• Adobe Certified Instructor
2
• Author for Packt Publishing
• Freelance instructor and
consultant
• Sound Engineer
Titre de cette présentation
Une fonctionnalité de jQuery méconnue
•Elle ouvre la porte à des fonctions
avancées.
•Elle permet de comprendre le
fonctionnement de nombreuses
autres fonctionnalités.
3
D a m i e n B r u y n d o n c k x
19 Juin 2014
1 thing you might not
know about jQuery…


…and the many things it allows you to do!
jQuery Deferreds
5
Agenda
•Comprendre les jQuery Deferreds
•Exemple simple
•les deferreds dans le reste de la
bibliothèque
6
1 thing you might not know about jQuery… and
the many things it allows you to do!
19 Juin 2014
Comprendre les
deferrds
Au restaurant
1. Plus de place au resto!
2. Le serveur vous encode
3. Le serveur vous donne un
récepteur
4. Vous allez vous promener
5. Quand une table est prête, le
serveur envoie un signal au
récepteur
6. Le récepteur vibre…
retournez au restaurant!
8
Traduction Deferreds
1. Plus de place au resto!
2. Le serveur crée un Deferred
3. Le serveur vous retourne une
promesse
4. D’autres actions ont lieu
5. Quand une table est prête, le
serveur résout la promesse
6. Le récepteur vibre… exécutez
des actions en réponse à la
résolution de la promesse
9
Caractéristiques d’un deferred
• Toujours lié à une promesse.
• Représente une transaction dont on ne
connaît ni le résultat ni la durée.
• C’est celui crée le Deferred qui peut
résoudre ou rejeter la promesse.
• Le détenteur de la promesse exécute une
(des) action(s) en réaction au
changement de statut de la promesse.
10
1 thing you might not know about jQuery… and
the many things it allows you to do!
19 Juin 2014
Exemple simple
API - Création d’un deferred
var deferred = $.Deferred()!
return deferred.promise()
12
Par défaut, les Deferreds ainsi créés ont
un statut “pending”
API - Résoudre, rejeter, notifier
deferred.resolve()!
deferred.reject()!
deferred.notify()
13
.done()!
.fail()!
.progress()!
.always()!
.then()
Permet de faire évoluer le statut du deferred
• pending -> resolved
• pending -> rejected
Une fois résolu ou rejeté, un deferred ne peut plus
redevenir “pending”
API - Callbacks multiples
Les fonctions de rappel sont exécutées
dans l’ordre où elles ont été attachées.
14
something()!
! .done(…).done(…)!
! .fail(…).fail(…)
Demo 1
•Timers revisités
•Renvoyer des données
15
API - grouper les promesses
when(deferred1, deferred2, ..,
deferredn).done().fail().always()
16
.done() = appelé si tous les Deferreds sont “resolved”
.fail() = appelé si un des Deferreds est “rejected”
.always() = appelé quand plus aucun Deferred n’est
“pending”
Demo 2
•Grouper les promesses avec when()
•Utilisation de then()
17
1 thing you might not know about jQuery… and
the many things it allows you to do!
19 Juin 2014
Les deferreds dans
la bibliothèque -
AJAX
AJAX
•Depuis jQuery 1.5 AJAX utilise les
Deferreds et les promesses
•Ancienne API toujours valable
•Toutes les fonctionnalités des
Deferreds disponibles dans Ajax
19
Demo 3
•Réécrire Ajax à la façon Deferreds
•Grouper les requêtes Ajax avec
When()
20
1 thing you might not know about jQuery… and
the many things it allows you to do!
19 Juin 2014
Les deferreds dans
la bibliothèque -
Animations
Animations
Chaque objet jQuery est un Deferred et
implémente les promesses!!
22
$(‘div’).promise()
•La promesse est résolue quand toutes
les animations sur l’(les)objet(s)
sélectionné(s) sont terminées
Animations
Possibilité d’écrire des callbacks façon
Deferreds sur les éléments animés!
23
$(‘div’).fadeIn(200, function(){doSomething})
est équivalent à
$(‘div’).fadeIn(200).promise().done(function()
{doSomething})
Animations
•Possibilité de grouper des animations
avec when()
➡possibilité de réagir à l’issue d’un groupe
d’animations.
•Possibilité de grouper des animations
avec when()
24
Démo 4
•Fonction de rappel sur les animations
façon Deferreds
•Grouper les animations avec when()
25
MErci
Damien Bruyndonckx
26
@damienbkx
www.dbr-taining.eu
damien.bruyndonckx@gmail.com

More Related Content

Viewers also liked

Jeremie Averous speaking at Lycee Hoche, May 2014 (Presentation au Lycee Hoch...
Jeremie Averous speaking at Lycee Hoche, May 2014 (Presentation au Lycee Hoch...Jeremie Averous speaking at Lycee Hoche, May 2014 (Presentation au Lycee Hoch...
Jeremie Averous speaking at Lycee Hoche, May 2014 (Presentation au Lycee Hoch...Jeremie Averous
 
La internacionalización de la es
La internacionalización de la esLa internacionalización de la es
La internacionalización de la esVictor Avendaño
 
6 patrice delorme - urbanoid - data tuesday
6   patrice delorme - urbanoid - data tuesday6   patrice delorme - urbanoid - data tuesday
6 patrice delorme - urbanoid - data tuesdayData Tuesday
 
Ceco2 pres parlementaires2
Ceco2 pres parlementaires2Ceco2 pres parlementaires2
Ceco2 pres parlementaires2Antoine Horellou
 
Examenes de primer trimestre tercero
Examenes de primer trimestre terceroExamenes de primer trimestre tercero
Examenes de primer trimestre terceroPaolis Villarreal
 
Eivar Extintores | Presentación corporativa
Eivar Extintores | Presentación corporativaEivar Extintores | Presentación corporativa
Eivar Extintores | Presentación corporativaExtintores l Grupo Eivar
 
Universal Dash Programmer 2008 Tacho Pro V2008.07
Universal Dash Programmer 2008 Tacho Pro V2008.07Universal Dash Programmer 2008 Tacho Pro V2008.07
Universal Dash Programmer 2008 Tacho Pro V2008.07josy jiang
 
Handicap positions ethique
Handicap positions ethiqueHandicap positions ethique
Handicap positions ethiqueAmineBenjelloun
 
Los Ancestros y los tipos de inteligencias
Los Ancestros y los tipos de inteligenciasLos Ancestros y los tipos de inteligencias
Los Ancestros y los tipos de inteligenciasTini de Bucourt
 
Coupler assurance-vie et contrat de capitalisation
Coupler assurance-vie et contrat de capitalisationCoupler assurance-vie et contrat de capitalisation
Coupler assurance-vie et contrat de capitalisationFabrice Haehl
 
Pablomatinez presentacio llum
Pablomatinez presentacio llumPablomatinez presentacio llum
Pablomatinez presentacio llumgandul_man
 
Prix d'amerique 2013
Prix d'amerique 2013Prix d'amerique 2013
Prix d'amerique 2013Loustic03
 
Amapola por nana mouskouri
  Amapola por nana mouskouri  Amapola por nana mouskouri
Amapola por nana mouskouriAdriano Ferreira
 

Viewers also liked (20)

Jeremie Averous speaking at Lycee Hoche, May 2014 (Presentation au Lycee Hoch...
Jeremie Averous speaking at Lycee Hoche, May 2014 (Presentation au Lycee Hoch...Jeremie Averous speaking at Lycee Hoche, May 2014 (Presentation au Lycee Hoch...
Jeremie Averous speaking at Lycee Hoche, May 2014 (Presentation au Lycee Hoch...
 
Book coville stéphane
Book coville stéphaneBook coville stéphane
Book coville stéphane
 
Histogramas matematicas
Histogramas matematicasHistogramas matematicas
Histogramas matematicas
 
SCTP
SCTP SCTP
SCTP
 
La internacionalización de la es
La internacionalización de la esLa internacionalización de la es
La internacionalización de la es
 
6 patrice delorme - urbanoid - data tuesday
6   patrice delorme - urbanoid - data tuesday6   patrice delorme - urbanoid - data tuesday
6 patrice delorme - urbanoid - data tuesday
 
Motogp
MotogpMotogp
Motogp
 
Hardware y software
Hardware y softwareHardware y software
Hardware y software
 
Bonheur recherche google
Bonheur   recherche googleBonheur   recherche google
Bonheur recherche google
 
Ceco2 pres parlementaires2
Ceco2 pres parlementaires2Ceco2 pres parlementaires2
Ceco2 pres parlementaires2
 
Examenes de primer trimestre tercero
Examenes de primer trimestre terceroExamenes de primer trimestre tercero
Examenes de primer trimestre tercero
 
Eivar Extintores | Presentación corporativa
Eivar Extintores | Presentación corporativaEivar Extintores | Presentación corporativa
Eivar Extintores | Presentación corporativa
 
Universal Dash Programmer 2008 Tacho Pro V2008.07
Universal Dash Programmer 2008 Tacho Pro V2008.07Universal Dash Programmer 2008 Tacho Pro V2008.07
Universal Dash Programmer 2008 Tacho Pro V2008.07
 
Handicap positions ethique
Handicap positions ethiqueHandicap positions ethique
Handicap positions ethique
 
Los Ancestros y los tipos de inteligencias
Los Ancestros y los tipos de inteligenciasLos Ancestros y los tipos de inteligencias
Los Ancestros y los tipos de inteligencias
 
Coupler assurance-vie et contrat de capitalisation
Coupler assurance-vie et contrat de capitalisationCoupler assurance-vie et contrat de capitalisation
Coupler assurance-vie et contrat de capitalisation
 
Pablomatinez presentacio llum
Pablomatinez presentacio llumPablomatinez presentacio llum
Pablomatinez presentacio llum
 
Prix d'amerique 2013
Prix d'amerique 2013Prix d'amerique 2013
Prix d'amerique 2013
 
Amapola por nana mouskouri
  Amapola por nana mouskouri  Amapola por nana mouskouri
Amapola por nana mouskouri
 
Mardi découverte page couv + progr int
Mardi découverte page couv + progr intMardi découverte page couv + progr int
Mardi découverte page couv + progr int
 

More from La FeWeb

Introduction to sketch - the designer's toolbox
Introduction to sketch - the designer's toolboxIntroduction to sketch - the designer's toolbox
Introduction to sketch - the designer's toolboxLa FeWeb
 
Introduction to Antetype - Web UX design tool
Introduction to Antetype - Web UX design toolIntroduction to Antetype - Web UX design tool
Introduction to Antetype - Web UX design toolLa FeWeb
 
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETICNoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETICLa FeWeb
 
That's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICThat's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICLa FeWeb
 
Usability & Wireframe par Nathalie Gouzée - Co-Founder Rubbik
Usability & Wireframe par Nathalie Gouzée - Co-Founder RubbikUsability & Wireframe par Nathalie Gouzée - Co-Founder Rubbik
Usability & Wireframe par Nathalie Gouzée - Co-Founder RubbikLa FeWeb
 
Introduction to Emolytics par David Hachez, Co-Founder GetSmily
Introduction to Emolytics par David Hachez, Co-Founder GetSmilyIntroduction to Emolytics par David Hachez, Co-Founder GetSmily
Introduction to Emolytics par David Hachez, Co-Founder GetSmilyLa FeWeb
 
Le community management pour les nuls par Louise Maton
Le community management pour les nuls par Louise MatonLe community management pour les nuls par Louise Maton
Le community management pour les nuls par Louise MatonLa FeWeb
 
RWD - Back to Basics par Ruben Pieraerts
RWD - Back to Basics par Ruben PieraertsRWD - Back to Basics par Ruben Pieraerts
RWD - Back to Basics par Ruben PieraertsLa FeWeb
 
Twitter Bootstrap par Antoine Guédès et Cédric Dussart
Twitter Bootstrap par Antoine Guédès et Cédric DussartTwitter Bootstrap par Antoine Guédès et Cédric Dussart
Twitter Bootstrap par Antoine Guédès et Cédric DussartLa FeWeb
 
Less CSS by Gauthier Eloy
Less CSS by Gauthier EloyLess CSS by Gauthier Eloy
Less CSS by Gauthier EloyLa FeWeb
 

More from La FeWeb (10)

Introduction to sketch - the designer's toolbox
Introduction to sketch - the designer's toolboxIntroduction to sketch - the designer's toolbox
Introduction to sketch - the designer's toolbox
 
Introduction to Antetype - Web UX design tool
Introduction to Antetype - Web UX design toolIntroduction to Antetype - Web UX design tool
Introduction to Antetype - Web UX design tool
 
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETICNoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
 
That's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICThat's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETIC
 
Usability & Wireframe par Nathalie Gouzée - Co-Founder Rubbik
Usability & Wireframe par Nathalie Gouzée - Co-Founder RubbikUsability & Wireframe par Nathalie Gouzée - Co-Founder Rubbik
Usability & Wireframe par Nathalie Gouzée - Co-Founder Rubbik
 
Introduction to Emolytics par David Hachez, Co-Founder GetSmily
Introduction to Emolytics par David Hachez, Co-Founder GetSmilyIntroduction to Emolytics par David Hachez, Co-Founder GetSmily
Introduction to Emolytics par David Hachez, Co-Founder GetSmily
 
Le community management pour les nuls par Louise Maton
Le community management pour les nuls par Louise MatonLe community management pour les nuls par Louise Maton
Le community management pour les nuls par Louise Maton
 
RWD - Back to Basics par Ruben Pieraerts
RWD - Back to Basics par Ruben PieraertsRWD - Back to Basics par Ruben Pieraerts
RWD - Back to Basics par Ruben Pieraerts
 
Twitter Bootstrap par Antoine Guédès et Cédric Dussart
Twitter Bootstrap par Antoine Guédès et Cédric DussartTwitter Bootstrap par Antoine Guédès et Cédric Dussart
Twitter Bootstrap par Antoine Guédès et Cédric Dussart
 
Less CSS by Gauthier Eloy
Less CSS by Gauthier EloyLess CSS by Gauthier Eloy
Less CSS by Gauthier Eloy
 

jQuery deffered objects

  • 1. D a m i e n B r u y n d o n c k x 19 Juin 2014 5 things you might not know about jQuery
  • 2. Damien Bruyndonckx • Coordinateur eLearning à l’Ihecs • Adobe Education Leader • Adobe Certified Instructor 2 • Author for Packt Publishing • Freelance instructor and consultant • Sound Engineer
  • 3. Titre de cette présentation Une fonctionnalité de jQuery méconnue •Elle ouvre la porte à des fonctions avancées. •Elle permet de comprendre le fonctionnement de nombreuses autres fonctionnalités. 3
  • 4. D a m i e n B r u y n d o n c k x 19 Juin 2014 1 thing you might not know about jQuery… 
 …and the many things it allows you to do!
  • 6. Agenda •Comprendre les jQuery Deferreds •Exemple simple •les deferreds dans le reste de la bibliothèque 6
  • 7. 1 thing you might not know about jQuery… and the many things it allows you to do! 19 Juin 2014 Comprendre les deferrds
  • 8. Au restaurant 1. Plus de place au resto! 2. Le serveur vous encode 3. Le serveur vous donne un récepteur 4. Vous allez vous promener 5. Quand une table est prête, le serveur envoie un signal au récepteur 6. Le récepteur vibre… retournez au restaurant! 8
  • 9. Traduction Deferreds 1. Plus de place au resto! 2. Le serveur crée un Deferred 3. Le serveur vous retourne une promesse 4. D’autres actions ont lieu 5. Quand une table est prête, le serveur résout la promesse 6. Le récepteur vibre… exécutez des actions en réponse à la résolution de la promesse 9
  • 10. Caractéristiques d’un deferred • Toujours lié à une promesse. • Représente une transaction dont on ne connaît ni le résultat ni la durée. • C’est celui crée le Deferred qui peut résoudre ou rejeter la promesse. • Le détenteur de la promesse exécute une (des) action(s) en réaction au changement de statut de la promesse. 10
  • 11. 1 thing you might not know about jQuery… and the many things it allows you to do! 19 Juin 2014 Exemple simple
  • 12. API - Création d’un deferred var deferred = $.Deferred()! return deferred.promise() 12 Par défaut, les Deferreds ainsi créés ont un statut “pending”
  • 13. API - Résoudre, rejeter, notifier deferred.resolve()! deferred.reject()! deferred.notify() 13 .done()! .fail()! .progress()! .always()! .then() Permet de faire évoluer le statut du deferred • pending -> resolved • pending -> rejected Une fois résolu ou rejeté, un deferred ne peut plus redevenir “pending”
  • 14. API - Callbacks multiples Les fonctions de rappel sont exécutées dans l’ordre où elles ont été attachées. 14 something()! ! .done(…).done(…)! ! .fail(…).fail(…)
  • 16. API - grouper les promesses when(deferred1, deferred2, .., deferredn).done().fail().always() 16 .done() = appelé si tous les Deferreds sont “resolved” .fail() = appelé si un des Deferreds est “rejected” .always() = appelé quand plus aucun Deferred n’est “pending”
  • 17. Demo 2 •Grouper les promesses avec when() •Utilisation de then() 17
  • 18. 1 thing you might not know about jQuery… and the many things it allows you to do! 19 Juin 2014 Les deferreds dans la bibliothèque - AJAX
  • 19. AJAX •Depuis jQuery 1.5 AJAX utilise les Deferreds et les promesses •Ancienne API toujours valable •Toutes les fonctionnalités des Deferreds disponibles dans Ajax 19
  • 20. Demo 3 •Réécrire Ajax à la façon Deferreds •Grouper les requêtes Ajax avec When() 20
  • 21. 1 thing you might not know about jQuery… and the many things it allows you to do! 19 Juin 2014 Les deferreds dans la bibliothèque - Animations
  • 22. Animations Chaque objet jQuery est un Deferred et implémente les promesses!! 22 $(‘div’).promise() •La promesse est résolue quand toutes les animations sur l’(les)objet(s) sélectionné(s) sont terminées
  • 23. Animations Possibilité d’écrire des callbacks façon Deferreds sur les éléments animés! 23 $(‘div’).fadeIn(200, function(){doSomething}) est équivalent à $(‘div’).fadeIn(200).promise().done(function() {doSomething})
  • 24. Animations •Possibilité de grouper des animations avec when() ➡possibilité de réagir à l’issue d’un groupe d’animations. •Possibilité de grouper des animations avec when() 24
  • 25. Démo 4 •Fonction de rappel sur les animations façon Deferreds •Grouper les animations avec when() 25