Applications web 1
Applications web
Cours Web Services ISIMA 3F3
Applications web 2
JavaScript
Inventé par Netscape ... sans rapport avec Java.
Standardisé par l’ECMA, spécification ECMA-262 : ECMAScript.http://www.ecma-international.org/publications/standards/Ecma-262.htm
Langage dynamique et faiblement typé, basé sur l’utilisation de prototypes.
Utilisé dans : Applications web, ActionScript (Flash, Flex), Adobe Acrobat, ...
Applications web 3
Duck typing
« Si je vois un animal qui vole comme un canard, cancane comme un canard, et nage comme un canard, alors j'appelle cet animal un canard ».
Applications web 4
Applications web 5
Caractéristiques du langage
Un objet est soit simple (entier, chaine, etc) ou complexe (tableaux, maps).
Une propriété d'un objet complexe peut être une fonction !
Les objets ne sont jamais fermés : on peut toujours les étendre.
Supporte des éléments de programmation fonctionnelle (e.g., closures).
Applications web 6
Applications web 7
Implémentation de Javascript dans les navigateurs
Mozilla Firefox : JavaScript 1.8.1
Google Chrome : JavaScript
Microsoft Internet Explorer : JScript 5.8
Opera : ECMAScript
Applications web 8
Frameworks JavaScript
jQuery, YUI, Prototype, Dojo…
Bibliothèques facilitant l'écriture de JavaScript :
• Gestion d'évènements
• Manipulation DOM
• Animations et composants
• Ajax
• Masque les différences d'implémentation entre browsers
... et plus encore.
Applications web 9
AJAX
Asynchronous Javascript and XML
Permettre de construire des applications web a contenu dynamique
Javascript + CSS + DOM + XML/JSON + XMLHttpRequest
Applications web 10
Applications web 11
Objet XMLHttpRequest
Objet mis à disposition par le navigateur pour effectuer des requêtes GET et POST.
Inventé ... par Microsoft dans ActiveX !
Implémenté par les navigateurs modernes (> 2002).
Données transférables :
• Texte
• XML
• JSON
• Fragments HTML
Applications web 12
AJAX et les librairies
Toutes les framework JavaScript offrent des facilités à l’utilisation de XMLHttpRequest
jQuery:
Applications web 13
Communications et AJAX
Applications web 14
Applications web 15
Applications web 16
Use case AJAX
Interface dynamique
Validation à la volée
Complétion de champs
Mashups
…
Applications web 17
Composition de services, mashups, portails
Les services unitaires peuvent être intégrés
Par un navigateur : Mashup
Par un serveur pour du contenu web : Portail
Par une application pour offrir un service plus évolué : Composition
Applications web 18
Principe du Mashup