Javascript est-il compatible ?

Bonjour,

Je developpe actuellement des applications HTML/PHP.

PHP seul est plutot… “basique”. Je veux dire, il n’y a pas de reactivite lors des remplissages de mes formulaires

Afin de mieux optimiser le remplissage de mes formulaires par l’utilisateur, je serai tres tente d’ajouter des instructions javascript du type: onChange, onClic, etc… pour rendre un petit peu dynamique mes formulaires sans pour autant tomber dans de l’ajax ou autre langage “dedie” au dynamisme. (le but etant d’avoir une appli web la plus compatible possible d’autant que c’est dans un but “professionnel”)

Ma question s’adresse principalement aux personnes qui ont developpe des appli/sites web en utilisant du Javascript (voir aussi un peu de CSS) et qui ont “vecu” les changements de versions des differents navigateurs: Internet Explorer, Firefox.

Y a-t-il des problemes lors des changements de versions de navigateurs ? Petits problemes ou gros problemes ?

Pour l’heure, l’entreprise ou je travaille utilise IE6. IE7 induit-il beaucoup de changement voir de problemes Javascript ? IE8 aussi ?

En fait, je suis preneur de vos experiences et avis…

Par avance, merci de votre aide…

Julien

Bonjour,

Oui, la difficulté de développer avec Javascript réside en partie dans le fait que celui-ci n’est pas forcément compris de la même manière par les différents navigateurs.
Il existe des frameworks pour palier à cet inconvénient.
Parmi ceux-ci, deux peuvent t’interresser :

  • Cross Browser, qui est en fait une bibliothèque de codes javascript qui servent à faire des tas de chose, et qui sont conçus pour être multi browser - cross-browser.com…
  • JQuery, qui n’est pas forcément trivial à utiliser, mais qui te permet de requeter sur les éléments de ta page web comme tu le ferais dans une base de données (par ex : "donne moi tous les éléments qui ont l’id ‘elem1’ et qui sont invisibles, et ajoute leur la class ‘classelem1’ ") - jquery.com…
    A noter que JQuery te sera utile si tu fais des choses un peu plus complexes que de la vérification de champs de formulaires, si tu restes dans le cadre d’une utilisation simple c’est le bazooka pour tuer la pauvre mouche !

Le développement Javascript est également fastidieux car il n’existe pas de véritable environnement de développement. Pour palier à ce manque, tu peux utiliser l’excellent addon de firefox : Firebug.
Il te permet entre autres choses de placer des points d’arrêts sur ton code Javascript, et de passer manuellement de ligne en ligne afin de vérifier l’état de tes variables et de tes objets… etc. Un véritable déboggeur javascript indispensable !
Firebug existe également pour IE, mais il est moins puissant car ce n’est pas un addon mais une librairie Javascript.
Je te conseille donc de tester sous Firefox si tu fais du Javascript

En espérant que ça pourra t’aider :slight_smile:
Edité le 06/05/2009 à 17:30

Bonjour et merci pour ta reponse Maverick911.

En fait, mon environnement de developpement est tres “fige”.

Je ne peux et ne dois rien ajouter que le “classique” pour un serveur PHP.

A la lecture de ton message, je me dis qu’il vaut mieux alors que j’en reste au HTML/PHP pur et dur puisque le but de mon application est vraiment qu’elle soit “robuste”. Le reste, disons que c’etait un “plus”.

En tous les cas, merci pour ta reponse.

Julien.

Le javascript n’a rien à voir avec le serveur, c’est exécuté par le client, et ton code php restera inchangé (sauf si celui-ci écrit du html dans lequel tu insères un peu de javascript, mais en tout cas à 99,9% inchangé). Nul besoin donc de modifier quoi que ce soit au niveau du serveur.

Dans ton cas, insérer un peu de javascript peut s’avérer de très bon goût pour augmenter la réactivité et l’ergonomie de ton site.
Quand à la robustesse elle restera inchangée également, ce n’est pas quelques lignes de js qui vont tout casser :wink:
Seulement il y a quelques recommandations à prendre en compte avant d’écrire du js, je t’en ai cité quelques unes.

julien.d: la méthodologie avec javascript, c’est simple : tu fais sans, et ensuite tu l’ajoutes à la fin.

Clairement, tu vas avoir des problèmes entre IE et Fx, que tous les frameworks ne pallient pas. Un exemple très simple : la gestion des événements claviers. L’exemple le plus simple, c’est un champ texte qui ne doit contenir que des chiffres : de mémoire, entre IE et Firefox, la gestion n’est pas du tout la même, faut carrément faire du cas par cas, voir ne pas filtrer les caractères (puisqu’en fait, si tu tapes ‘7’ sur le pavé, ça passe, si tu tapes “è”, ça passe aussi … :/)

Donc :

  1. fait déjà ton site en PHP/HTML
  2. réfléchis bien à comment intégrer javascript, comme par exemple la validation des formulaires, etc, soit un usage de javascript qui ne doit pas empêcher d’utiliser ta page sans javascript.

[edit] je précise quand même que je ne suis pas un routard du javascript, ni un militant du tout javascript. J’ai rien contre ceci dit, mais du moment que cela ne soit pas imposé et autrement bien pensé.
Edité le 06/05/2009 à 22:29

Bonjour et merci à vous pour vos réponses.

Je vais donc y aller avec “parciemonie” et je me limiterai à des instructions de “bases” pour mes formulaires (du type: valider automatiquement un bouton existant et présent sur la page donc) .

Merci pour vos avis.

Julien.

Quels sont tes besoins en matière d’ergonomie ?

  • calculer la valeur d’un champ à partir d’un autre champ ?
  • change le style d’un élément de ta page ?
  • insérer du code html ?

Si ca se limite à des besoins équivalents, tu peux partir sans aucun (ou presque) risque de compatibilité entre les navigateurs. A condition bien évidemment à se limiter aux instructions de base comme tu dis (modele objet lié au formulaire, innerHTML, getElementById …).

Le probleme de compatibilité entre les navigateurs vient de l’interprétation de certaines spécifications de Javascript par les navigateurs. Exemple typique : situer géographiquement un élément de ta page. Dans cet exemple, l’implémentation va etre différente sous IE6, sous IE7, sous FF, sous Safari, sous Opera …