Concevoir, crée et réaliser des sites internet Web 2.0
Par Valérian Lohéac, 23 juin 2008 à 15:15 - Création de site Internet, blog - #55 - rss

Bien développer pour le Web 2.0
Un livre de Christophe Porteneuve
Adieu, absence d'accessibilité, soupes de balises, combinaisons de Javascript propriétaires et autres mauvais réflexes qui polluaient le Web 1.0. Créer des interfaces utilisateur bluffantes et interactives à la Web 2.0 (Gmail, Google Maps, Flickr, Netvibes...) est l'occasion d'instaurer de bonnes pratiques de développement garantissant le respect des normes, l'ergonomie et l'accessibilité des applications web.
Christophe Porteneuve livre dans cet ouvrage plus de dix années d'expérience en développement et en qualité web. Il rappelle les fondamentaux techniques du Web 2.0 (XHTML, CSS, JavaScript, DOM...), décrit l'usage des frameworks de développement dédiés Prototype et script.aculo.us dans leur version la plus récente, et explore le coeur d'Ajax, XMLHttpRequest, ainsi que la question des contenus et services externes (services web, API REST et flux de syndication RSS et Atom). Outre une réflexion sur l'accessibilité et l'ergonomie, il explique comment conjuguer toutes ces technologies dans le cadre d'une méthodologie de développement cohérente et qualitative.
À qui s'adresse cet ouvrage ? : Aux développeurs web qui doivent actualiser leurs connaissances et découvrir les technologies du Web 2.0 ; À ceux qui souhaitent explorer en profondeur les bibliothèques Prototype et script.aculo.us ; À tous ceux qui souhaitent acquérir une méthodologie cohérente de développement web, combinant technologies de pointe, qualité et accessibilité.
Un livre de Christophe Porteneuve
Adieu, absence d'accessibilité, soupes de balises, combinaisons de Javascript propriétaires et autres mauvais réflexes qui polluaient le Web 1.0. Créer des interfaces utilisateur bluffantes et interactives à la Web 2.0 (Gmail, Google Maps, Flickr, Netvibes...) est l'occasion d'instaurer de bonnes pratiques de développement garantissant le respect des normes, l'ergonomie et l'accessibilité des applications web.
Christophe Porteneuve livre dans cet ouvrage plus de dix années d'expérience en développement et en qualité web. Il rappelle les fondamentaux techniques du Web 2.0 (XHTML, CSS, JavaScript, DOM...), décrit l'usage des frameworks de développement dédiés Prototype et script.aculo.us dans leur version la plus récente, et explore le coeur d'Ajax, XMLHttpRequest, ainsi que la question des contenus et services externes (services web, API REST et flux de syndication RSS et Atom). Outre une réflexion sur l'accessibilité et l'ergonomie, il explique comment conjuguer toutes ces technologies dans le cadre d'une méthodologie de développement cohérente et qualitative.
À qui s'adresse cet ouvrage ? : Aux développeurs web qui doivent actualiser leurs connaissances et découvrir les technologies du Web 2.0 ; À ceux qui souhaitent explorer en profondeur les bibliothèques Prototype et script.aculo.us ; À tous ceux qui souhaitent acquérir une méthodologie cohérente de développement web, combinant technologies de pointe, qualité et accessibilité.
SOMMAIRE
Avant-propos, À qui s’adresse ce livre ? , Qu’allez-vous trouver dans ce livre ? , Les standards du Web, De quelles technologies parle-t-on ? , Qui est à la barre, et où va-t-on ? , À quoi servent les standards ? , Qu’en pensent les concepteurs de navigateurs ? , Quelques mots sur les dernières versions, Qu’est-ce que le «Web 2.0 » ? , Vue d’ensemble, chapitre par chapitre, Première partie : donner vie aux pages, Deuxième partie : Ajax ou l’art de chuchoter , Troisième partie : parler au reste du monde , Des annexes pour le débutant comme pour l’expert , Aller plus loin , À propos des exemples de code
CHAPITRE 1
Pourquoi et comment relever le défi du Web 2.0 ?, Avant/après : quelques scénarios frappants, La saisie assistée : complétion automatique de texte , Le chargement à la volée, La sauvegarde automatique, Bien maîtriser ses outils clés : XHTML, CSS, JS, DOM et Ajax, Faire la part des choses : Ajax, c’est quoi au juste ?, Plan d’actions pour deux objectifs : méthode et expertise
PREMIÈRE PARTIE
Donner vie aux pages
CHAPITRE 2
Ne prenez pas JavaScript pour ce qu’il n’est pas, Mythes et rumeurs sur JavaScript, JavaScript serait une version allégée de Java, JavaScript ne serait basé sur aucun standard, JavaScript serait lent, JavaScript serait un langage jouet, peu puissant, S’y retrouver entre JavaScript, EcmaScript, JScript et ActiveScript, Tout ce que vous ne soupçonniez pas : les recoins du langage, Variables déclarées ou non déclarées ?, Types de données, Fonctions et valeurs disponibles partout, Les mystères de parseFloat et parseInt, Rappels sur les structures de contrôle, Les grands classiques, Labélisation de boucles, Simplifier l’accès répétitif à un objet avec with, Opérateurs méconnus, Retour rapide sur les grands classiques, Opérateurs plus exotiques, Comportements particuliers, Prise en charge des exceptions, Les types d’exceptions prédéfinis, Capturer une exception : try/catch, Garantir un traitement : finally, Lancer sa propre exception : throw, Améliorer les objets existants, Un peu de théorie sur les langages à prototypes, Mise en pratique, Arguments des fonctions, Le binding des fonctions : mais qui est « this » ?, Idiomes intéressants, Initialisation et valeur par défaut avec, Sélectionner une propriété (donc une méthode) sur condition, Tester l’absence d’une propriété dans un objet, Fonctions anonymes : jamais new Function !, Objets anonymes comme hashes d’options, Simuler des espaces de noms, « Unobstrusive JavaScript » : bien associer code JS et page web, Astuces pour l’écriture du code, Déjouer les pièges classiques, Améliorer la lisibilité, Mieux déboguer du JavaScript, La console JavaScript, Dans Mozilla , Dans Opera , Dans Safari, Dans Konqueror, Dans MSIE, Venkman, le débogueur JavaScript, Firebug, le couteau suisse du développeur Web 2.0, Pour aller plus loin, Livres, Sites
CHAPITRE 3
Manipuler dynamiquement la page avec le DOM, Pourquoi faut-il maîtriser le DOM?, La pierre angulaire des pages vivantes, Maîtriser la base pour utiliser les frameworks, Comprendre les détails pour pouvoir déboguer, Le DOM et ses niveaux 1, 2 et 3, Vue d’ensemble des niveaux, Support au sein des principaux navigateurs, Les aspects du DOM : HTML, noyau, événements, styles, Maîtriser les concepts : document, noeud, élément, texte et collection, Le DOM de votre document : une arborescence d’objets, Node, Document, Element, Text, NodeList et NamedNodeMap, DOMImplementation, HTMLDocument, HTMLElement, Quelques bonnes habitudes, Détecter le niveau de DOM disponible, Bien développer pour le Web 2.0, Créer les noeuds dans le bon ordre, Ne scripter qu’après que le DOM voulu soit construit, Ne jamais utiliser d’extension propriétaire, Utiliser un inspecteur DOM, L’inspecteur DOM de Firefox/Mozilla, L’inspecteur DOM de Firebug, Répondre aux événements, Les truands : les attributs d’événement dans HTML, La brute : les propriétés d’événement dans le DOM niveau 0, Le bon : addEventListener, Accommoder MSIE, La propagation : capture ou bouillonnement ?, Le modèle le plus courant : le bouillonnement, La capture, ou comment jouer les censeurs, L’objet Event, Récupérer l’élément déclencheur, Stopper la propagation, Annuler le traitement par défaut, JavaScript, événements et accessibilité, Besoins fréquents et solutions concrètes, Décoration automatique de labels, Validation automatique de formulaires, Résoudre les écueils classiques, MSIE et la gestion événementielle, MSIE et le DOM de select/option, Les principaux points problématiques, Pour aller plus loin, Livres, Sites,
CHAPITRE 4
Prototype : simple, pratique, élégant, portable !, Avant de commencer..., Un mot sur les versions, L’objet global Prototype, Vocabulaire et concepts, Espaces de noms et modules, Itérateurs, Élément étendu, Alias, Comment utiliser Prototype ?, Vous allez aimer les dollars, La fonction $ facilite l’accès aux éléments, La fonction $A joue sur plusieurs tableaux, La fonction $H, pour créer un Hash, La fonction $F, des valeurs qui sont les vôtres, La fonction $R et les intervalles, La fonction $$ et les règles CSS, Jouer sur les itérations avec $break et $continue, Extensions aux objets existants, Un Object introspectif, Gérer correctement le binding, Des drôles de numéros, Un objet String très enrichi, Retraits de caractères : strip, stripTags, stripScripts, truncate, Transformations : sub, gsub, escapeHTML, unescapeHTML, camelize, Fragments de scripts : extractScripts, evalScripts, Conversions et extractions : scan, toQueryParams, parseQuery, toArray, inspect, Des tableaux surpuissants !, Conversions : from, inspect, Extractions : first, last, indexOf, Transformations : clear, compact, flatten, without, reverse, reduce, uniq, Extraire les éléments ayant une classe précise, Modules et objets génériques, Enumerable, ce héros, L’itération elle-même : each, Tests sur le contenu : all, any, include, member, Extractions : detect, find, findAll, select, grep, max, min, pluck, reject, Transformations et calculs : collect, map, inject, invoke, partition, sortBy, Conversions : toArray, entries, inspect, Tableaux associatifs avec Hash, ObjectRange : intervalles d’objets, PeriodicalExecuter ne se lasse jamais, Vous devriez réévaluer vos modèles, Utiliser un motif de détection personnalisé, Try.these cherche une méthode valide, Manipulation d’éléments, Element, votre nouveau meilleur ami, Element.Methods et les éléments étendus, Valeur de retour des méthodes, Élément es-tu là ? hide, show, toggle et visible, Gestion du contenu : cleanWhitespace, empty, remove, replace et update, Bien développer pour le Web 2.0, Styles et classes : addClassName, classNames, getElementsByClassName, getElementsBySelector, getStyle, hasClassName, match, removeClassName et setStyle, Les copains d’abord : ancestors, descendants, nextSiblings, previousSiblings, siblings, Bougez ! down, next, previous et up, Positionnement : getDimensions, getHeight, makePositioned, undoPositioned, Défilement et troncature : makeClipping, scrollTo, undoClipping, childOf le mal nommé, Selector, l’objet classieux, Manipulation de formulaires, Field / Form.Element, Un mot sur Form.Element.Serializers, Form, Form.Observer, Form.Element.Observer, Gestion unifiée des événements, Event, Pister un événement, Démasquer l’élément qui a reçu l’événement, Étouffer la propagation de l’événement, Déterminer l’arme du crime : souris ou clavier, Form.EventObserver, Form.Element.EventObserver, Insertions dynamiques, Pour aller plus loin…, Sites, Groupe de discussion, Canal IRC
DEUXIÈME PARTIE
Ajax, ou l’art de chuchoter
CHAPITRE 5
Les mains dans le cambouis avec XMLHttpRequest, Anatomie d’une conversation Ajax, Un petit serveur pour nos tests, Installation de Ruby, Sous Windows, Sous Linux/BSD, Sous Mac OS X, Un mot sur le cache, Un petit serveur HTTP et un code dynamique simple, La petite histoire de XMLHttpRequest, Origines et historique, Bien préparer un échange asynchrone, ActiveX versus objet natif JavaScript, Créer l’objet requêteur, Décrire notre requête, Envoyer la requête, Recevoir et traiter la réponse, Une utilisation complète de notre petit serveur d’exemple, Comment surveiller les échanges Ajax de nos pages ?, Types de réponse : XHTML, XML, JS, JSON, Bien choisir son type de réponse, Une réponse textuelle simple : renvoyer une donnée basique, Exemple 1 : sauvegarde automatique, Exemple 2 : barre de progression d’un traitement serveur, Fragments de page prêts à l’emploi : réponse XHTML, Un aperçu des coulisses de l’insertion... , Dans la cour des grands : XPath pour traiter des données XML complexes, Vite et bien : utilisation de DOM niveau 3 Xpath, En simulant : utilisation de GoogleAJAXSLT, Piloter la page en renvoyant du JavaScript, JSON : l’idéal pour des données structurées spécifiques
CHAPITRE 6
Ajax tout en souplesse avec Prototype, Prototype encore à la rescousse, Ajax.Request, c’est tellement plus simple !, Plus de détails sur Ajax.Request, Ajax.Updater : mettre à jour un fragment XHTML, exécuter un script, Différencier la mise à jour entre succès et échec, Presque magique : Ajax.PeriodicalUpdater, Comprendre l’option decay, Petits secrets supplémentaires, Pour aller plus loin..., Livres, Sites, Groupe de discussion, Canal IRC
CHAPITRE 7
Une ergonomie de rêve avec script.aculo.us, Une ergonomie haut de gamme avec script.aculo.us, Charger script.aculo.us, Les effets visuels, Les effets noyau, Invocation de l’effet, Options communes à tous les effets noyau, Fonctions de rappel, Qu’y a-t-il dans un objet d’effet ?, Et si on essayait quelques effets ?, Les effets combinés, Files d’effets, Glisser-déplacer, Faire glisser un élément avec Draggable, Gérer le dépôt d’un élément avec Droppables, Tri de listes par glisser-déplacer, Que peut-on trier ?, Activer les fonctions d’ordonnancement, Désactiver l’ordonnancement, Envoyer l’ordre au serveur, Complétion automatique de texte, Création d’un champ de saisie à complétion automatique, Interaction clavier et souris, Un premier exemple, Personnalisation des contenus renvoyés, Et ce n’est pas tout ! Il y a d'autres services, Avoir le bon recul : les cas où Ajax est une mauvaise idée, Ajax et l’accessibilité, Considérations techniques, Considérations ergonomiques, Utilisations pertinentes et non pertinentes, Pratiques recommandées, Principes généraux, Ergonomie et attentes de l’utilisateur, Cognitif/Lecteurs d’écran, Autres frameworks reconnus, Dojo, Mochikit, OpenRico, Pour aller plus loin…, Site, Groupe de discussion, Canal IRC
TROISIÈME PARTIE
Interagir avec le reste du monde
CHAPITRE 8
Services web et REST : nous ne sommes plus seuls, Pourquoi la page ne parlerait-elle qu’à son propre site ?, Contraintes de sécurité sur le navigateur, Une « couche proxy » sur votre serveur, Architecture de nos exemples, Comprendre les services web, Qu’est-ce qu’une API REST ?, Cherchons des livres sur Amazon.fr, Obtenir une clé pour utiliser l’API, L’appel REST à Amazon.fr, Anatomie de la requête, Le document XML de réponse, Notre formulaire de recherche, Passer par Ajax, La couche serveur, intermédiaire de téléchargement, Intercepter le formulaire, De XML à XHTML : la transformation XSLT, Notre feuille XSLT, Apprendre XSLT à notre page, Charger la feuille XSLT au démarrage, Effectuer la transformation, Embellir le résultat, Rhumatismes 2.0 : prévisions météo, Préparer le projet, Récupérer les prévisions d’un lieu, Requête et réponse REST, Initialisation de la page et obtention des prévisions, Et la feuille XSLT ? ; Les petites touches finales, Rechercher un lieu, Préparons le terrain, Éblouissez vos amis avec Ajax.XSLTCompleter, Brancher les composants ensemble, Gérer des images chez Flickr, Obtenir une clé API chez Flickr, Format général des requêtes et réponses REST chez Flickr, Préparer le terrain, Chargement centralisé parallèle des feuilles XSLT, Obtenir les informations du jeu de photos, Récupérer les photos du jeu, Afficher une photo et ses informations, Pour aller plus loin
CHAPITRE 9
L’information à la carte : flux RSS et Atom , Aperçu des formats, Une histoire mouvementée, RSS 0.9x et 2.0 : les « bébés » de Dave Winer, RSS 1.0 : une approche radicalement différente, Atom, le fruit de la maturité, Informations génériques, Le casse-tête du contenu HTML, Récupérer et afficher un flux RSS 2.0, Format du flux, Préparer le terrain, La feuille XSLT, Chargement et formatage du flux, Ajustements des dates et titres, Affichage plus avancé et flux Atom 1.0, Notre flux Atom, Préparation de notre lecteur de flux, La feuille XSLT et le formatage, Charger la feuille et le flux, Afficher dynamiquement les billets complets, Les mains dans le cambouis : interpréter le HTML encodé, Traiter des quantités massives de HTML encodé, Les dates W3DTF, Pour aller plus loin..., Livres, Sites
ANNEXE A
Bien baliser votre contenu : XHTML sémantique, Les avantages insoupçonnés, Pour le site et ses propriétaires, Pour le développeur web, Règles syntaxiques et sémantiques, La DTD et le prologue, XHTML, oui mais lequel ?, Le balisage sémantique, Les balises XHTML 1 Strict par catégorie, Balises structurelles, Balises sémantiques, Balises de liaison, Balises de métadonnées, Balises de présentation, Balises de formulaires et d’interaction, Balises dépréciées, Attributs incontournables, Besoins fréquents, solutions concrètes, Un formulaire complexe mais impeccable, Un tableau de données à en-têtes groupés, Un didacticiel technique, Pour aller plus loin..., Livres, Sites
ANNEXE B
Aspect irréprochable et flexible : CSS 2.1, Statut, état et vocabulaire, Les versions de CSS, Prise en charge actuelle, Le jargon CSS, Bien comprendre la « cascade » et l’héritage, Le sens de la cascade, Calcul de la spécificité d’une règle, Que se passe-t-il avec la présentation dans HTML ?, L’héritage, De la valeur spécifiée à la valeur concrète, Les modèles des boîtes et de mise en forme visuelle, Les côtés d’une boîte : ordre et syntaxes courtes, Unités absolues et relatives, Marge, bordure et espacement, Éléments en ligne et de type bloc, Éléments remplacés, Fusion des marges, Le modèle W3C et le modèle Microsoft, Tour d’horizon des sélecteurs, Groupement, Pseudo-éléments, Tour d’horizon des propriétés, De l’art de réaliser des CSS légères, Propriétés du modèle des boîtes : marges, espacements et bordures, Propriétés de formatage visuel : positionnement, largeur, hauteur, baseline, Propriétés de contenu généré automatiquement, Propriétés de pagination, Propriétés de couleurs et d’arrière-plan, Propriétés de gestion de la police de caractères, Taille de police, Famille de polices, Tout spécifier d’un coup !, Propriétés de gestion du corps du texte, L’espacement dans le corps du texte, Propriétés des tableaux, Propriétés de l’interface utilisateur, Pour aller plus loin…, Livres, Sites
ANNEXE C
Le « plus » de l’expert : savoir lire une spécification, Intérêts d’aller chercher l’information à la source, Certitude et précision, « On m’a dit que là-dessus, c’est toi qui sais tout » : l’expertise, Les principaux formats de spécifications web, Les recommandations du W3C, Les grammaires formelles de langages à balises : DTD et schémas XML, Les RFC de l’IETF : protocoles et formats d’Internet, S’y retrouver dans une recommandation W3C, URL et raccourcis, Structure générale d’une recommandation, Recours à des syntaxes formelles, Les descriptions de propriétés CSS, Les descriptions de propriétés et méthodes DOM, Déchiffrer une DTD, Naviguer dans un schéma XML, Parcourir une RFC, Format général d’une RFC, Structure générale d’une RFC, Vos spécifications phares
ANNEXE D
Développer avec son navigateur web, Le cache peut être votre pire ennemi, Le rafraîchissement strict, Vider le cache, Configurer le cache, Firefox, favori du développeur grâce aux extensions, Les trésors du menu Debug caché dans Safari, MSIE et la Internet Explorer Developer Toolbar, Et Opera, qu’a-t-il pour nous ?, Index
Pour acheter le livre sur la Fnac : Fnac
Avant-propos, À qui s’adresse ce livre ? , Qu’allez-vous trouver dans ce livre ? , Les standards du Web, De quelles technologies parle-t-on ? , Qui est à la barre, et où va-t-on ? , À quoi servent les standards ? , Qu’en pensent les concepteurs de navigateurs ? , Quelques mots sur les dernières versions, Qu’est-ce que le «Web 2.0 » ? , Vue d’ensemble, chapitre par chapitre, Première partie : donner vie aux pages, Deuxième partie : Ajax ou l’art de chuchoter , Troisième partie : parler au reste du monde , Des annexes pour le débutant comme pour l’expert , Aller plus loin , À propos des exemples de code
CHAPITRE 1
Pourquoi et comment relever le défi du Web 2.0 ?, Avant/après : quelques scénarios frappants, La saisie assistée : complétion automatique de texte , Le chargement à la volée, La sauvegarde automatique, Bien maîtriser ses outils clés : XHTML, CSS, JS, DOM et Ajax, Faire la part des choses : Ajax, c’est quoi au juste ?, Plan d’actions pour deux objectifs : méthode et expertise
PREMIÈRE PARTIE
Donner vie aux pages
CHAPITRE 2
Ne prenez pas JavaScript pour ce qu’il n’est pas, Mythes et rumeurs sur JavaScript, JavaScript serait une version allégée de Java, JavaScript ne serait basé sur aucun standard, JavaScript serait lent, JavaScript serait un langage jouet, peu puissant, S’y retrouver entre JavaScript, EcmaScript, JScript et ActiveScript, Tout ce que vous ne soupçonniez pas : les recoins du langage, Variables déclarées ou non déclarées ?, Types de données, Fonctions et valeurs disponibles partout, Les mystères de parseFloat et parseInt, Rappels sur les structures de contrôle, Les grands classiques, Labélisation de boucles, Simplifier l’accès répétitif à un objet avec with, Opérateurs méconnus, Retour rapide sur les grands classiques, Opérateurs plus exotiques, Comportements particuliers, Prise en charge des exceptions, Les types d’exceptions prédéfinis, Capturer une exception : try/catch, Garantir un traitement : finally, Lancer sa propre exception : throw, Améliorer les objets existants, Un peu de théorie sur les langages à prototypes, Mise en pratique, Arguments des fonctions, Le binding des fonctions : mais qui est « this » ?, Idiomes intéressants, Initialisation et valeur par défaut avec, Sélectionner une propriété (donc une méthode) sur condition, Tester l’absence d’une propriété dans un objet, Fonctions anonymes : jamais new Function !, Objets anonymes comme hashes d’options, Simuler des espaces de noms, « Unobstrusive JavaScript » : bien associer code JS et page web, Astuces pour l’écriture du code, Déjouer les pièges classiques, Améliorer la lisibilité, Mieux déboguer du JavaScript, La console JavaScript, Dans Mozilla , Dans Opera , Dans Safari, Dans Konqueror, Dans MSIE, Venkman, le débogueur JavaScript, Firebug, le couteau suisse du développeur Web 2.0, Pour aller plus loin, Livres, Sites
CHAPITRE 3
Manipuler dynamiquement la page avec le DOM, Pourquoi faut-il maîtriser le DOM?, La pierre angulaire des pages vivantes, Maîtriser la base pour utiliser les frameworks, Comprendre les détails pour pouvoir déboguer, Le DOM et ses niveaux 1, 2 et 3, Vue d’ensemble des niveaux, Support au sein des principaux navigateurs, Les aspects du DOM : HTML, noyau, événements, styles, Maîtriser les concepts : document, noeud, élément, texte et collection, Le DOM de votre document : une arborescence d’objets, Node, Document, Element, Text, NodeList et NamedNodeMap, DOMImplementation, HTMLDocument, HTMLElement, Quelques bonnes habitudes, Détecter le niveau de DOM disponible, Bien développer pour le Web 2.0, Créer les noeuds dans le bon ordre, Ne scripter qu’après que le DOM voulu soit construit, Ne jamais utiliser d’extension propriétaire, Utiliser un inspecteur DOM, L’inspecteur DOM de Firefox/Mozilla, L’inspecteur DOM de Firebug, Répondre aux événements, Les truands : les attributs d’événement dans HTML, La brute : les propriétés d’événement dans le DOM niveau 0, Le bon : addEventListener, Accommoder MSIE, La propagation : capture ou bouillonnement ?, Le modèle le plus courant : le bouillonnement, La capture, ou comment jouer les censeurs, L’objet Event, Récupérer l’élément déclencheur, Stopper la propagation, Annuler le traitement par défaut, JavaScript, événements et accessibilité, Besoins fréquents et solutions concrètes, Décoration automatique de labels, Validation automatique de formulaires, Résoudre les écueils classiques, MSIE et la gestion événementielle, MSIE et le DOM de select/option, Les principaux points problématiques, Pour aller plus loin, Livres, Sites,
CHAPITRE 4
Prototype : simple, pratique, élégant, portable !, Avant de commencer..., Un mot sur les versions, L’objet global Prototype, Vocabulaire et concepts, Espaces de noms et modules, Itérateurs, Élément étendu, Alias, Comment utiliser Prototype ?, Vous allez aimer les dollars, La fonction $ facilite l’accès aux éléments, La fonction $A joue sur plusieurs tableaux, La fonction $H, pour créer un Hash, La fonction $F, des valeurs qui sont les vôtres, La fonction $R et les intervalles, La fonction $$ et les règles CSS, Jouer sur les itérations avec $break et $continue, Extensions aux objets existants, Un Object introspectif, Gérer correctement le binding, Des drôles de numéros, Un objet String très enrichi, Retraits de caractères : strip, stripTags, stripScripts, truncate, Transformations : sub, gsub, escapeHTML, unescapeHTML, camelize, Fragments de scripts : extractScripts, evalScripts, Conversions et extractions : scan, toQueryParams, parseQuery, toArray, inspect, Des tableaux surpuissants !, Conversions : from, inspect, Extractions : first, last, indexOf, Transformations : clear, compact, flatten, without, reverse, reduce, uniq, Extraire les éléments ayant une classe précise, Modules et objets génériques, Enumerable, ce héros, L’itération elle-même : each, Tests sur le contenu : all, any, include, member, Extractions : detect, find, findAll, select, grep, max, min, pluck, reject, Transformations et calculs : collect, map, inject, invoke, partition, sortBy, Conversions : toArray, entries, inspect, Tableaux associatifs avec Hash, ObjectRange : intervalles d’objets, PeriodicalExecuter ne se lasse jamais, Vous devriez réévaluer vos modèles, Utiliser un motif de détection personnalisé, Try.these cherche une méthode valide, Manipulation d’éléments, Element, votre nouveau meilleur ami, Element.Methods et les éléments étendus, Valeur de retour des méthodes, Élément es-tu là ? hide, show, toggle et visible, Gestion du contenu : cleanWhitespace, empty, remove, replace et update, Bien développer pour le Web 2.0, Styles et classes : addClassName, classNames, getElementsByClassName, getElementsBySelector, getStyle, hasClassName, match, removeClassName et setStyle, Les copains d’abord : ancestors, descendants, nextSiblings, previousSiblings, siblings, Bougez ! down, next, previous et up, Positionnement : getDimensions, getHeight, makePositioned, undoPositioned, Défilement et troncature : makeClipping, scrollTo, undoClipping, childOf le mal nommé, Selector, l’objet classieux, Manipulation de formulaires, Field / Form.Element, Un mot sur Form.Element.Serializers, Form, Form.Observer, Form.Element.Observer, Gestion unifiée des événements, Event, Pister un événement, Démasquer l’élément qui a reçu l’événement, Étouffer la propagation de l’événement, Déterminer l’arme du crime : souris ou clavier, Form.EventObserver, Form.Element.EventObserver, Insertions dynamiques, Pour aller plus loin…, Sites, Groupe de discussion, Canal IRC
DEUXIÈME PARTIE
Ajax, ou l’art de chuchoter
CHAPITRE 5
Les mains dans le cambouis avec XMLHttpRequest, Anatomie d’une conversation Ajax, Un petit serveur pour nos tests, Installation de Ruby, Sous Windows, Sous Linux/BSD, Sous Mac OS X, Un mot sur le cache, Un petit serveur HTTP et un code dynamique simple, La petite histoire de XMLHttpRequest, Origines et historique, Bien préparer un échange asynchrone, ActiveX versus objet natif JavaScript, Créer l’objet requêteur, Décrire notre requête, Envoyer la requête, Recevoir et traiter la réponse, Une utilisation complète de notre petit serveur d’exemple, Comment surveiller les échanges Ajax de nos pages ?, Types de réponse : XHTML, XML, JS, JSON, Bien choisir son type de réponse, Une réponse textuelle simple : renvoyer une donnée basique, Exemple 1 : sauvegarde automatique, Exemple 2 : barre de progression d’un traitement serveur, Fragments de page prêts à l’emploi : réponse XHTML, Un aperçu des coulisses de l’insertion... , Dans la cour des grands : XPath pour traiter des données XML complexes, Vite et bien : utilisation de DOM niveau 3 Xpath, En simulant : utilisation de GoogleAJAXSLT, Piloter la page en renvoyant du JavaScript, JSON : l’idéal pour des données structurées spécifiques
CHAPITRE 6
Ajax tout en souplesse avec Prototype, Prototype encore à la rescousse, Ajax.Request, c’est tellement plus simple !, Plus de détails sur Ajax.Request, Ajax.Updater : mettre à jour un fragment XHTML, exécuter un script, Différencier la mise à jour entre succès et échec, Presque magique : Ajax.PeriodicalUpdater, Comprendre l’option decay, Petits secrets supplémentaires, Pour aller plus loin..., Livres, Sites, Groupe de discussion, Canal IRC
CHAPITRE 7
Une ergonomie de rêve avec script.aculo.us, Une ergonomie haut de gamme avec script.aculo.us, Charger script.aculo.us, Les effets visuels, Les effets noyau, Invocation de l’effet, Options communes à tous les effets noyau, Fonctions de rappel, Qu’y a-t-il dans un objet d’effet ?, Et si on essayait quelques effets ?, Les effets combinés, Files d’effets, Glisser-déplacer, Faire glisser un élément avec Draggable, Gérer le dépôt d’un élément avec Droppables, Tri de listes par glisser-déplacer, Que peut-on trier ?, Activer les fonctions d’ordonnancement, Désactiver l’ordonnancement, Envoyer l’ordre au serveur, Complétion automatique de texte, Création d’un champ de saisie à complétion automatique, Interaction clavier et souris, Un premier exemple, Personnalisation des contenus renvoyés, Et ce n’est pas tout ! Il y a d'autres services, Avoir le bon recul : les cas où Ajax est une mauvaise idée, Ajax et l’accessibilité, Considérations techniques, Considérations ergonomiques, Utilisations pertinentes et non pertinentes, Pratiques recommandées, Principes généraux, Ergonomie et attentes de l’utilisateur, Cognitif/Lecteurs d’écran, Autres frameworks reconnus, Dojo, Mochikit, OpenRico, Pour aller plus loin…, Site, Groupe de discussion, Canal IRC
TROISIÈME PARTIE
Interagir avec le reste du monde
CHAPITRE 8
Services web et REST : nous ne sommes plus seuls, Pourquoi la page ne parlerait-elle qu’à son propre site ?, Contraintes de sécurité sur le navigateur, Une « couche proxy » sur votre serveur, Architecture de nos exemples, Comprendre les services web, Qu’est-ce qu’une API REST ?, Cherchons des livres sur Amazon.fr, Obtenir une clé pour utiliser l’API, L’appel REST à Amazon.fr, Anatomie de la requête, Le document XML de réponse, Notre formulaire de recherche, Passer par Ajax, La couche serveur, intermédiaire de téléchargement, Intercepter le formulaire, De XML à XHTML : la transformation XSLT, Notre feuille XSLT, Apprendre XSLT à notre page, Charger la feuille XSLT au démarrage, Effectuer la transformation, Embellir le résultat, Rhumatismes 2.0 : prévisions météo, Préparer le projet, Récupérer les prévisions d’un lieu, Requête et réponse REST, Initialisation de la page et obtention des prévisions, Et la feuille XSLT ? ; Les petites touches finales, Rechercher un lieu, Préparons le terrain, Éblouissez vos amis avec Ajax.XSLTCompleter, Brancher les composants ensemble, Gérer des images chez Flickr, Obtenir une clé API chez Flickr, Format général des requêtes et réponses REST chez Flickr, Préparer le terrain, Chargement centralisé parallèle des feuilles XSLT, Obtenir les informations du jeu de photos, Récupérer les photos du jeu, Afficher une photo et ses informations, Pour aller plus loin
CHAPITRE 9
L’information à la carte : flux RSS et Atom , Aperçu des formats, Une histoire mouvementée, RSS 0.9x et 2.0 : les « bébés » de Dave Winer, RSS 1.0 : une approche radicalement différente, Atom, le fruit de la maturité, Informations génériques, Le casse-tête du contenu HTML, Récupérer et afficher un flux RSS 2.0, Format du flux, Préparer le terrain, La feuille XSLT, Chargement et formatage du flux, Ajustements des dates et titres, Affichage plus avancé et flux Atom 1.0, Notre flux Atom, Préparation de notre lecteur de flux, La feuille XSLT et le formatage, Charger la feuille et le flux, Afficher dynamiquement les billets complets, Les mains dans le cambouis : interpréter le HTML encodé, Traiter des quantités massives de HTML encodé, Les dates W3DTF, Pour aller plus loin..., Livres, Sites
ANNEXE A
Bien baliser votre contenu : XHTML sémantique, Les avantages insoupçonnés, Pour le site et ses propriétaires, Pour le développeur web, Règles syntaxiques et sémantiques, La DTD et le prologue, XHTML, oui mais lequel ?, Le balisage sémantique, Les balises XHTML 1 Strict par catégorie, Balises structurelles, Balises sémantiques, Balises de liaison, Balises de métadonnées, Balises de présentation, Balises de formulaires et d’interaction, Balises dépréciées, Attributs incontournables, Besoins fréquents, solutions concrètes, Un formulaire complexe mais impeccable, Un tableau de données à en-têtes groupés, Un didacticiel technique, Pour aller plus loin..., Livres, Sites
ANNEXE B
Aspect irréprochable et flexible : CSS 2.1, Statut, état et vocabulaire, Les versions de CSS, Prise en charge actuelle, Le jargon CSS, Bien comprendre la « cascade » et l’héritage, Le sens de la cascade, Calcul de la spécificité d’une règle, Que se passe-t-il avec la présentation dans HTML ?, L’héritage, De la valeur spécifiée à la valeur concrète, Les modèles des boîtes et de mise en forme visuelle, Les côtés d’une boîte : ordre et syntaxes courtes, Unités absolues et relatives, Marge, bordure et espacement, Éléments en ligne et de type bloc, Éléments remplacés, Fusion des marges, Le modèle W3C et le modèle Microsoft, Tour d’horizon des sélecteurs, Groupement, Pseudo-éléments, Tour d’horizon des propriétés, De l’art de réaliser des CSS légères, Propriétés du modèle des boîtes : marges, espacements et bordures, Propriétés de formatage visuel : positionnement, largeur, hauteur, baseline, Propriétés de contenu généré automatiquement, Propriétés de pagination, Propriétés de couleurs et d’arrière-plan, Propriétés de gestion de la police de caractères, Taille de police, Famille de polices, Tout spécifier d’un coup !, Propriétés de gestion du corps du texte, L’espacement dans le corps du texte, Propriétés des tableaux, Propriétés de l’interface utilisateur, Pour aller plus loin…, Livres, Sites
ANNEXE C
Le « plus » de l’expert : savoir lire une spécification, Intérêts d’aller chercher l’information à la source, Certitude et précision, « On m’a dit que là-dessus, c’est toi qui sais tout » : l’expertise, Les principaux formats de spécifications web, Les recommandations du W3C, Les grammaires formelles de langages à balises : DTD et schémas XML, Les RFC de l’IETF : protocoles et formats d’Internet, S’y retrouver dans une recommandation W3C, URL et raccourcis, Structure générale d’une recommandation, Recours à des syntaxes formelles, Les descriptions de propriétés CSS, Les descriptions de propriétés et méthodes DOM, Déchiffrer une DTD, Naviguer dans un schéma XML, Parcourir une RFC, Format général d’une RFC, Structure générale d’une RFC, Vos spécifications phares
ANNEXE D
Développer avec son navigateur web, Le cache peut être votre pire ennemi, Le rafraîchissement strict, Vider le cache, Configurer le cache, Firefox, favori du développeur grâce aux extensions, Les trésors du menu Debug caché dans Safari, MSIE et la Internet Explorer Developer Toolbar, Et Opera, qu’a-t-il pour nous ?, Index
Pour acheter le livre sur la Fnac : Fnac



