On parle de javascript non intrusif, hors le premier pas vers l'application du paradigme en question est de respecter une sépération des couches.
Les CSS sont un exemple type, donc au même titre qu'en css on n'utilisera pas de style inline, on ne doit pas insérer d'élements relatifs au javascript dans le html.
Et ce d'un point de vu logique, au même titre qu'on ne mettra pas de html dans du php par exemple, on doit appliquer les même règles ici.
Le premier avantage étant d'avoir une règle de dépendances simplifiée (on admet par exemple qu'une feuille de style pourrait dépendre d'une autre feuille de style, au sens ou elle l'étend, mais que cette même feuille de style ne doit dépendre de rien d'autre - je pense notamment aux expression()), ce qui facilite le packaging et la maintenance.
Ce dernier point est particulièrement important, puisque qui dit javascript dans le code html dit formatage du html en fonction du javascript.
Ce qui induit que, si on modifie le html on doit également ajouter des élements qui font réference au javascript. Encore une fois, ce n'est pas le comportement qu'on attend d'une application.
Particulièrement dans le cas du javascript, qui, si on le veut non-instrusif doit être une surcouche du html et donc s'adapter à celui ci, et surtout pas l'inverse.
Donc l'article en question parle de javasript non intrusif en omettant ce point particulierement important (j'espère que ça sera abordé dans un chapitre futur

) donc on y retrouve un bout de code qui est loin d'être non-intrusif, la section qui concerne les globales est tout aussi dénué d'intéret puisque les fonctions données en exemple sont également dans le scope global, en encore une fois, inutile de polluer le dom avec du javascript.
Enfin, encore une fois j'espère que ça sera abordé dans un autre chapitre, mais le bout de code donné pour la validation de formulaire est totalement dépendant de la structure du html, ce qui est mauvais :
-Soit on admet une couche d'abstraction qui prend pour règle :
n élement-html-type traité par du javascript
équivalent à
n instances du code javascript en question dans le cas de données perennes une instance.
ou
1 instance abstraite.
- Soit on admet que l'élement est unique et le restera, donc le on crée une instance abstraite arbitraire.
Dans tous les cas, on passe soit par des identifiants instanciables (donc les class en html/css) soit par des identifiants uniques (donc les id en html/css)
Et ce n'est certainement pas ce qui à été démontré dans l'article, puisqu'en l'occurence il existe des identifiants qui ne sont pas utilisés.
Quelques articles très interessants, il en existe d'autres :
http://www.alistapart.com/articles/behavioralseparation
http://adactio.com/atmedia2005/ Modifié par Shinuza (23 Nov 2007 - 18:05)