paris web 2007 - ateliers les bibliothèques js jquery

15
copyright France Télécom, tous droits réservés Paris Web 2007 - Ateliers Les bibliothèques JS jQuery Orange Labs Julien Wajsberg, Recherche & Développement 17/11/2007, présentation à Paris Web 2007

Upload: fonda

Post on 09-Jan-2016

32 views

Category:

Documents


1 download

DESCRIPTION

Paris Web 2007 - Ateliers Les bibliothèques JS jQuery. Orange Labs Julien Wajsberg , Recherche & Développement 17/11/2007 , présentation à Paris Web 2007. . jQuery: une simple bibliothèque à importer - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

copyright France Télécom, tous droits réservés

Paris Web 2007 - AteliersLes bibliothèques JSjQueryOrange Labs

Julien Wajsberg, Recherche & Développement 17/11/2007, présentation à Paris Web 2007

Page 2: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

2 copyright France Télécom, tous droits réservés

<script type="text/javascript" src="jquery.js"></script>

jQuery: une simple bibliothèque à importer

Son but: rendre JavaScript plus "sympa" à utiliser.

– write less, do more Assez des incompatibilités entre navigateurs ! jQuery

nous cache tout ça

… et le fait mieux que vous : il sait utiliser des spécificités natives de certains navigateurs pour aller plus vite ! (ex: XPath chez Mozilla, Javascript 1.6+)

Page 3: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

3 copyright France Télécom, tous droits réservés

$('jquery')

jQuery: une fonction

– des sélecteurs à passer en argument

– renvoie un objet qui représente les éléments correspondants

Prototype l'a plébiscité: $ est la fonction-raccourci pour créer les objets

Page 4: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

4 copyright France Télécom, tous droits réservés

$('anything')

$ accepte un sélecteur CSS en argument

$ accepte des ID :

– $('#jquery') retourne un élément <-> document.getElementById

$ accepte des classes :

– $('.jquery') retourne tous les éléments qui correspondent

$ accepte plusieurs sélecteurs (comme en CSS, en fait)

– $('.article, .nouvelles, .edito')

Page 5: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

5 copyright France Télécom, tous droits réservés

$(anything)

$ accepte des sélecteurs complexes :

– $('.article + p a') $ accepte des sélecteurs spécifiques :

– $(':radio'), $(':header'), $(':first-child') des sélecteurs en forme de filtres :

– $(':checked'), $(':odd'), $(':visible')

– plus fort: $(':contains(du texte)') des attributs

– $('a[href]'), $('a[href^=http://'), $('img[src$=.png]')

Page 6: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

6 copyright France Télécom, tous droits réservés

$('#jquery').show()

jQuery: un objet

– les méthodes s'appliquent généralement à tous les éléments sélectionnés

– $('.jquery').hide(); plein de méthodes utilitaires

– parcourir le DOM: .parent(), .next(), .children(), .parents() …

– ajouter ou retirer des classes CSS: addClass, removeClass

– manipuler: append, wrap, prepend

– effets: show, hide…

Page 7: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

7 copyright France Télécom, tous droits réservés

$(…).parent().next().find(…).show();

Intérêt fondamental: la plupart des méthodes de l'objet retournent l'objet lui-même

– on peut chaîner les appels !

– $('anything').parent().find('still anything').show(); Cette propriété est extrêmement puissante !

Page 8: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

8 copyright France Télécom, tous droits réservés

javascript avancé : les callbacks

une fonction prend en argument une autre fonction, qu'elle pourra appeler ensuite (événements, complétion…)

function traitementFini() {

alert('Mon traitement est fini');

}

traitementLong(parametres, traitementFini); jQuery utilise des callbacks pour tous les événements

Page 9: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

9 copyright France Télécom, tous droits réservés

function() { .. } : les closures

closures, ou fonctions anonymes

– peut être utilisée partout où on attend une fonction

var mafonction = function() { … };

traitementLong(parametres, function() { … }); On utilise énormément ces constructions dans un

développement JavaScript "moderne"…

Page 10: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

10 copyright France Télécom, tous droits réservés

$(anything).click(function)

Javascript non intrusif: bref rappel

– code HTML propre : des balises, des classes, des id, et c'est tout

– le javascript exploite les sélecteurs CSS, pour utiliser des événements, ou ajoutant des éléments

$('a.popup').click(function() {alert(this.href);

}

Imaginez le nombre de lignes en DOM classique pour faire ça… (ou encore $('a.popup > span + span[attr=$toto]')).

Page 11: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

11 copyright France Télécom, tous droits réservés

$.ajax

une méthode utilitaire pour encapsuler une requête ajax

on reçoit la réponse dans une callback

on peut traiter cette réponse à la mode jQuery…

Page 12: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

12 copyright France Télécom, tous droits réservés

$.ajax : exemple

var callback = function(data) {

var $data = $(data);

var nb = $data.find("reponse").length;

var nb =

$data.find("choix:contains('Bonne')").parent().length;

};

$.ajax({

cache: false,

success: callback,

url: file

});

Page 13: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

13 copyright France Télécom, tous droits réservés

les plugins

on peut étendre facilement jQuery en utilisant des plugins

les méthodes ajoutées sont au même niveau que les méthodes natives…

il faut tâcher de conserver les mêmes sémantiques que les méthodes natives: retourner l'objet jQuery, appliquer la méthode à tous les éléments représentés

à user et abuser pour factoriser du code, ou donner un nom métier à du traitement techniques (ex: cacherContenu() pour factoriser $('.classe').children('.contenu').hide())

beaucoup beaucoup beaucoup de plugins existent d'ores et déjà, à la qualité variable; certains sont mis en avant par l'équipe de développement

Page 14: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

Orange Labs - Recherche & Développement Paris-Web 2007 – atelier bibliothèques JavaScript – 17/11/2007

14 copyright France Télécom, tous droits réservés

les mains dans le cambouis

exemple live

Page 15: Paris Web 2007 - Ateliers Les bibliothèques JS jQuery

copyright France Télécom, tous droits réservés

merci