Trop d’AJAX nuit à la santé mentale

Où comment passer une soirée de geek sur messagerie instantanée avec un pote…

Simple ! Lancez-vous dans le codage d’une application web histoire de vous remettre dans le sujet et de faire des tests… Produisez un code qui a l’air à peu près correct, qui fait ce que vous voulez, qui fonctionne à merveille dans IE et testez-le sur Firefox.

Et là, c’est le drame !

Il ne se passe rien de chez rien au clic sur le lien « magique » de votre début d’appli/test. Et le comble, c’est que vous n’avez aucune erreur remontée par la console de debbugage. Vous surfez donc, lisez des docs à n’en plus finir… en profitez pour découvrir une extension pour le debbugage génialissime pour votre Firefox chéri. Bon elle ne vous apporte pas de solution puisqu’elle aussi dit que tout ce passe bien dans le cas qui m’occupait, mais elle est vraiment chouette !

Puis moults jurons plus tard, vous comparez votre code à un similaire trouvé sur le net… Vous cherchez la différence expliquant pourquoi ce code marche et pas le votre… Et là, un mélange de joie pour avoir solutionner votre problème et de haine devant la bêtise de la chose vous envahit !

En effet, dans firefox les propriétés onreadystatechange et readyState ont l’air d’être sensibles à la casse. Ce qui à mon avis est plutôt débile dans le sens où :

  • on est pas habitué à ça en javascript mais c’est pas le plus grave [ADD] En fait si mais ce n’est toujours le plus grave à mon avis
  • elles n’ont même pas une syntaxe proche (pourquoi le « state » prend un « s » minuscule dans onreadystatechange et un « s » majuscule dans readyState ?)
  • alors que firefox ne les reconnait pas quand ils sont mal écrits, il ne les considère visiblement pas comme une erreur puisque la console reste muette ! Pratique pour trouver la faute ça ! [ADD] Apparement c’est ni juste ni faux pour lui… c’est juste ignoré ! Hallucinant !
  • pas trouvé un seul site disant une seule fois à quel point ce « détail » était important ! Je suis quand même pas le seul à avoir fait cette bêtise, si ?

Tout cela m’a rappelé pourquoi j’avais beaucoup de mal à considérer d’un bon oeil le javascript en tout cas… Ou plus exactement son implémentation dans les navigateurs web.

Continuez votre lecture

3 commentaires

syklop a dit le 26 mai 2006 à 20:29

Bein ça c’est pratique ! : Quand on comprends pas, on ignore. Au moins, ça bourre pas les logs d’erreur !

Ca me rappelle quand j’avais dû migrer sur unix une appli php bricolée à souhait qui était à la base hébergée sous Windaube : Le "développeur" (hum… bricoleur ouais !) avait, je pense, fait exprès de varier la casse dans toutes ses variables et scripts.
Mais là, au moins, les messages d’erreur avaient le mérite de me sauter à la gueule…

RépondreRépondre
Olivier a dit le 13 juillet 2008 à 21:40

C’est fou ça… Comment est ce que l’on peut faire des trucs aussi nazes… Ils sont un peu concons chez FF…

RépondreRépondre
burningHat a dit le 14 juillet 2008 à 11:36

En même temps c’était y a plus de deux ans ! Aucune idée si c’est toujours comme ça par contre…

RépondreRépondre