Petit point technique sur une technologie que je découvre seulement

Le web, c'est très bien, mais vous avez sans doute constaté comme moi les défauts inhérents à la technologie elle-même. Le protocole http et le langage html sont prévus pour fonctionner de manière asynchrone. Je fais une requête (par exemple en tapant une adresse dans la barre d'adresse), le serveur à l'autre bout m'envoie le résultat de ma requête, puis la connexion s'interrompt. Il faut alors une nouvelle action de l'utilisateur qui provoque une nouvelle requête, et une nouvelle page est envoyée par le serveur.
Ce fonctionnement en pointillé, plutôt adapté à la présentation de pages statiques, atteind ses limites lorsque les pages sont dynamiques, c'est à dire, générées à la volée par un script (en PHP par exemple). La page que vous lisez là, par exemple, elle n'existe pas. Elle est fabriquée de toute pièce par un interpréteur PHP qui produit à la volée le code HTML qui correspond à cette page, à partir de données qui se trouve dans une base de données et d'une mise en page prédéfinie.
Si vous passez à un autre article, tous le processus recommence, la page doit être entièrement regénérée, alors que seul le contenu change, ce qui nuit grandement aux performances du serveur, d'une part, et à la fluidité de la navigation, d'autre part.

Le problème devient encore plus épineux lorsqu'il s'agit de développer de véritables applications web. Microsoft, flairant la piste à dollars, a réagit en inventant le contrôle Active X. Merveille de la technologie, ce procédé permet(tait) de simuler une application client/serveur classique (je simplifie, à la fois pour ne pas troubler le lecteur et parce que j'y connais rien en Active X), mais il comporte deux gros défauts : son format propriétaire l'empêche de fonctionner correctement sur toutes les plateformes (Linux, Mac...), sur tous les navigateurs (Opera, Firefox ...), ce qui va à l'encontre du principe d'universalité qui a été à la base des fondations du World Wide Web, mais surtout, il constitue un sérieux trou de sécurité, puisque les contrôles Active X ont pour ainsi dire la capacité d'accéder à toutes les parties de votre ordinateur. La plupart des organismes de conseils en sécurité informatique recommande d'ailleurs aujourd'hui de désactiver les Active X, pour ceux qui utilisent encore Internet Explorer qui est, à lui seul, un trou de sécurité !

Heureusement, une solution est arrivée du monde libre : AJAX. Asynchronous JAvascript + XML. Le principe est tout simple, il s'agit de permettre à du code javascript (executé par le navigateur) d'envoyer des requêtes au serveur et de récupérer le résultat, le tout sans rechargement de la page. Le trafic diminue (seules les données transit, plutôt que l'habillage de la page à chaque fois), la charge serveur diminue également (la page PHP n'est générée qu'une fois, ensuite, ce sont les données qui changent seulement), bref, c'est une véritable révolution.

Du coup, l'ergonomie qu'on croyait très limitée des applications web (utiliser un webmailer au lieu d'un vrai client de mail est un effort auquel je me plie péniblement), devient carrément comparable à celle d'une application Windows classique.
Les utilisateurs de GMail ont pu déjà s'en rendre compte, mais c'est encore plus flagrant sur le tout nouveau Google Calendar. Je vous invite à vous y inscrire pour voir, c'est bluffant. Pour ajouter un rendez-vous, il suffit de tirer avec la souris. Pour le déplacer : un glisser/déplacer à la souris suffit. Un clic tout seul permet de saisir le rendez-vous de façon ultra simplifiée. Et tout cela, bien sûr, sans aucun chargement de page.
Derrière chaque clic se cache un traitement Ajax qui va mettre à jour la base de données, de façon totalement transparente pour l'utilisateur. Pour quelqu'un qui a un peu fait de développement web, c'est quasi-miraculeux comme concept.

Du coup, cela ouvre des perspectives insoupçonnées : les applications bureautiques que l'on croyait indétrônables peuvent cette fois connaître une concurrence acharnée sur le web, sans aucun sacrifice d'ergonomie et avec une portabilité enfin totale (vous travaillez sur Linux en Australie, ou bien sur Mac en Papouasie, vous avez accès à la même interface, aux mêmes données partagées, au même confort).
Les jeux en ligne, qui m'intéressent tout particulièrement, peuvent également connaître une seconde jeunesse avec ce procédé. Notamment ceux qui se jouent en pseudo temps réel, comme Wargang, dont le gros défaut de réactivité est dû aux contraintes inhérentes au protocole HTTP, non adapté à ce type d'application.
Enfin, cela prouve, s'il en était besoin, que le navigateur web est ou sera la pièce centrale du système d'information de toute entreprise, et même chez le particulier. D'où le coup de force réussi par Mozilla de grapiller des parts de marché à Microsoft, avec l'appui de Google pour dynamiser tout cela.

Les commentateurs n'hésitent pas à parler de "Web 2.0", en imaginant les perspectives ouvertes par Ajax et par la montée en puissance des blogs et autres applications fortement collaboratives.

Je suis conscient que tout cela passe complètement inaperçu pour l'internaute lambda, mais croyez-moi, de l'intérieur -sans prétention, je ne suis que spectateur- , c'est assez fascinant à observer.

Commentaires

1. Le jeudi, 20 avril 2006, 00:31 par Cheuz

bon bah au boulot merome

faut tester avec wargang ;op


et oui le navigateur est la piece central dans pas mal de boite deja c'est mon cas ;o)

2. Le jeudi, 20 avril 2006, 10:04 par don corleone

C'est bien tout ca on va pouvoir repasser au refresh gg ancienne version ;-)

Sinon oui c'est une véritable révolution pour ce qui est de la conception de site web. ASP que l'ont trouve dans de grandes entreprises risque d'en prendre un coup et c'est tant mieux.

3. Le jeudi, 20 avril 2006, 12:36 par Marzi

'tain, pour une fois qu'on utilise au boulot un truc avant que mérome et sa "veille technologique" nous précède :)

Un formateur Valtech que j'ai cotoyé semaine derniere semblait dire que ca restait tj hyper limité, et que l'avenir était Flex, de macromedia, qui améliore nettement Flash : y'a des démos sur leur site je crois.

4. Le jeudi, 20 avril 2006, 13:49 par Merome
Flash (et sans doute Flex) nécessite un plugin, et le format est propriétaire. Donc aucune chance que cela me satisfasse. Universalité du web et toussa...
5. Le jeudi, 20 avril 2006, 15:09 par Etheriel

Attention Marzi: quand merome parle d'Ajax, rien à voir avec le club de foot hollandais ou le produit vaisselle :)

6. Le jeudi, 20 avril 2006, 18:28 par Thesa

AJAX, c'est un nom trouvé pour l'association d'une technologie javascript permettant de faire des requêtes asychrones, comme expliqué (technologie qui est implentée de façon inégale selon les navigateurs, et passe par un ActivX sous Internet Explorer), et le format de fichier xml.

Le problème est que l'on associe souvent AJAX aux "applications web 2.0", c'est à dire à des pages web qui reproduisent le comportement d'un programme classique : cliquer-glisser, etc. On demande donc au navigateur de gérer des boutons, des fenêtres, tout un comportement que l'ordinateur possède déjà nativement, avec des bricolage du html et du javascript, qui ne sont pas exactement prévus pour ça.

Je pense personellement (et tout le monde n'est pas d'accord) que les applications web 2.0/AJAX ne sont que des bricolages avec l'existant pour obtenir un semblant de programme à l'aide d'une page web statique, cela au détriment des performances et surtout de l'accessibilité (qui est l'un des avantages du web).

Il paraitrait plus logique d'avoir accès aux contrôles gérés par le système d'exploitation (boutons, etc.) tout en gardant une interaction avec le web à l'aide de l'AJAX. C'est ce que permettent de faire les plates-formes mozilla à l'aide de XUL, un langage similaire au html qui décrit une application au lieu de décrire une page web, et qui permet lui aussi d'utiliser AJAX (l'interface de Firefox est en XUL). XUL est un langage ouvert, et pourrait être intégré dans d'autres plate-formes (Mozilla développe un programme nommé XUL-Runner qui permettrai de se passer de Mozilla/Firefox, et le W3C réfléchit à la standardisation de XUL ou d'un langage similaire).

Quand nous aurons des applications asynchrones utilisant des langages dédiés, utilisant les resources systèmes sans redondance, et d'une façon accessible, alors je crois que nous pourons parler d'une véritable évolution.

Après... tout ça n'est que mon humble avis, n'est-ce pas !

7. Le jeudi, 20 avril 2006, 21:44 par Etheriel

Encore mieux: tout un "OS" en ajax: www.eyeos.info

8. Le jeudi, 20 avril 2006, 22:22 par Sylvain

Entièrement d'accord avec Thesa ! On ne m'enlèvera pas de l'idée que tout ça n'est qu'une grosse bidouille... JavaScript n'est à la base vraiment pas fait pour ça.

Cela dit, je suis le premier à reconnaître que le résultat pour l'utilisateur final est vraiment épatant : je suis tombé amoureux de Gmail dès le premier jour et je ne l'ai pas lâché depuis. Ca fait bientôt 1 an et 1/2 maintenant !

9. Le jeudi, 20 avril 2006, 23:31 par greenwar

Ainsi donc, c'est ça Ajax... Je me suis souvent posé la question :P
Je vais me renseigner pour utiliser ça au boulot... Si je pouvais utiliser ça sur le FCKEditor (editeur de HTML en ligne...)
Je suis parfois obligé de faire 2-3 rechargement de pages avec le FCK... C'est regrettable vu son temps de chargement.
Merci donc pour cet article :)

10. Le vendredi, 21 avril 2006, 10:58 par Kilroy

Ajax offre en effet de gros plus pour les applications interactives et nécessitant des échanges continus avec l'utilisateur.
Google l'utilise beaucoup, dans Gmail, calendar et également dans Google Analytics.

Il y a quand même des contraintes importantes avec ce type d'appli, notamment au niveau accessibilité et des fonctionnalités des browsers qui deviennent plus délicates à appliquer. Sur Google Analytics, la touche back du navigateur est inopérante et pour cause, on reste dans un document unique.

Mais il y a une chose qu'on doit comprendre sur Ajax, comme sur tous les sites webs qui reposent sur des actions de l'utilisateur pour leur fonctionnement : ils ne sont actuellemnet pas indexables du tout par des machines. Un site de contenus sous Ajax n'aura pas de pages indexées dans les moteurs et se privera donc entièrement de cette source de trafic.

C'est déjà le cas pour les sites dont l'interface est tout en Flash ou ceux dont la navigation repose exclusivement sur l'usage d'un moteur de recherche.

11. Le vendredi, 21 avril 2006, 14:31 par Merome
Kilroy : Ajax n'est adapté que pour les usages auxquels il est prévu, ce qui est le cas de toutes technologie. Ça n'empechera pas quelques crétins d'en mettre partout où ça ne sert à rien, ou même où ça nuit à l'ergonomie. Suffit de voir les merdes en flash qu'on peut voir partout, le top du top étant à mon sens le site forom.com : faire un forum en flash, il fallait vraiment avoir l'esprit tordu.
Enfin, je connais un gars qui a fait un jeu temps réel avec du php... N'importe quoi... :)
12. Le samedi, 22 avril 2006, 00:21 par greenwar

Ajax n'aura pas de pages indexées dans les moteurs et se privera donc entièrement de cette source de trafic.
___
Aïe... Voilà qui est pour le moins ennuyeux!


Enfin, je connais un gars qui a fait un jeu temps réel avec du php... N'importe quoi... :)
___
Sans blagues? ;) En fait ca me semble pas si inadapté que ca (AJAX devrait pouvoir donner un coup de main, cependant)

13. Le samedi, 22 avril 2006, 09:53 par Merome
Pour ce qui est d'indexer les pages, là aussi c'est une question d'usage. La carte de Wargang n'a pas besoin d'être indexée par Google, le calendrier de Google Calendar non plus. Bref : il faut bien adapter l'outil à l'usage.
14. Le dimanche, 23 avril 2006, 15:56 par Sir arthur

Salut a tous c'est mon premier passage sur le blog de papi Merome et je doit dire que je ne suis pas deçu du tout.

Ici on ne parle pas pour rien dire et sa fait plaisir a voir, je reviendrait.

Pour ajax, je pense que cela peut en effet etre très utile car le php et le html a ses limites que le systeme ajax peut maintenant dépasser.

Il ne faut cependant pas oublier qu'il en est a son balbutiement et verra donc son systeme se dévelloper et s'ameliorer. Il faut donc etre patient et attendre qu'il soit un peu plus evoluer je pense.

En tout cas, a quand du ajax dans wargang papi ??????

15. Le lundi, 24 avril 2006, 08:12 par Marzi

Merome : le plugin flash équipe déjà 97% des PC sur le net...

16. Le mercredi, 10 mai 2006, 10:34 par Filou

pour info, MSNH otmail commence à adapter l'AJAX sur la messagerie Hotmail avec Windows Live Mail Beta qui s'avère être en effet extrèmement pratique :-)

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : https://merome.net/blog/index.php?trackback/217