(reprise du message précédent)
Laissons AJAX de côté pour le moment, je n'ai pas envie d'embrouiller les moins expérimentés.
Peut-être que j'y viendrai au moment de parler de listes déroulantes liées.
Quant au onblur, j'aime pas trop le principe d'être dérangé toutes les 30 secondes à peine je remplis un champ. Je ne sais pas, ça me semble plus naturel de faire la vérification à la fin.
Quand on remplit un formulaire papier, celui à qui il est destiné ne lit pas sur tes épaules ... il te le retourne s'il est mal rempli, après coup.
Je sais, c'est peut-être idiot comme comparaison...
Je vais rentrer dans un autre débat, mais c'est un peu comme la pagination sur le web : pourquoi on l'utilise, c'est tout simplement parce qu'on est habitué à tourner des pages quand on lis sur papier. Personnellement, je trouve que c'est absurde, il existe des scrollbars, et ça m'énerve de cliquer sans arrêt sur page suivante. Si ça ne tenait qu'à moi, je supprimerais purement et simplement pour tout mettre sur la même page. Surtout qu'avec une TOC, on règle le problème de la navigation rapide.
Alors dans le cadre d'un tuto, oui. C'est plus simple de consulter le code de chaque exemple de cette manière, je trouve.
Par contre, évidemment que pour un site, non, j'ai pris l'habitude de séparer CSS et HTML et de profiter des avantages que cela suppose, c'est pas pour revenir à du <font>.
Le vrai avantage du CSS, c'est de pouvoir faire le design en un seul fichier, et de ne plus avoir à s'en préoccuper après. Une fois le CSS écrit, il n'y a plus qu'à structurer logiquement et le design se fait tout seul.
Le design d'un site est le même sur toutes les pages, c'est ce qui rend CSS si pratique.
Pour le javascript, c'est plus compliqué : il y a des fonctions qui sont constantes sur toutes les pages et là, j'adhère au même principe de séparation : un seul fichier pour modifier le comportement de tout le site.
Mais parralèlement, il existe une multitude de fonctions qui sont différentes sur toutes les pages : c'est notamment le cas des fonctions de vérification de formulaire. Ils sont tous différents, et il nécéssitent donc une fonction de vérification js propre à chacun.
Je ne vois pas l'intérêt d'externaliser ces fonctions étant donné qu'elles sont différentes pour chaque page, et que, par conséquent, cela entraînerait une multiplication des fichiers .js. Pourquoi charger systématiquement deux fichiers au lieu d'un ? aucun intérêt : on doit écrire autant de code, et on ne profite pas de la mise en cache.
Quand le code ne doit pas être réutilisé sur plusieurs pages, je n'en vois pas l'intérêt, c'est aussi simple que ça.
J'ai déjà essayé de généraliser mes fonctions de vérification de formulaire notamment en utilisant l'attribut class, comme le prouve mon script form-checker. Mais cela se révèle insuffisant pour la plupart des formulaires complexes en fait. Et en passant des informations par l'attribut class, quelque part, j'esquisse tout de même le comportement ...
A quand un xforms ou un webforms2 ? en réalité une fois qu'ils seront supportés, mon tuto n'aura plus aucun intérêt.
Donc en résumé : un petit <style>...</style> ou un petit onclick orphelin n'a jamais fait de tort à personne. Ca ne sert à rien de faire un fichier .js (ou .css, même débat) juste pour 2-3 lignes de code qui ne sont utilisés que sur une seule page.
Le problème c'est qu'après le lecteur va peut-être avoir du mal à trouver l'info qu'il souhaite.
Entre trouver un script de 10 lignes juste en-dessous d'un formulaire d'exemple et chercher une fonction de 10 lignes dans un code de 20 Ko, je préfère la première. D'autant plus que les fonctions présentées ne sont jamais réutilisées ailleurs et que justement c'est à titre d'exemple.
Vite, l'url de ton site, je veux voir ça. Pas un seul onXXX, j'ai quand même du mal à y croire. Tu en as forcément besoin quelque part... non ?
Autre question, combien as-tu de fichiers .js qui font moins de 1 Ko, juste par curiosité ? je serais prêt à parier sur "beaucoup".
Merci pour ce tuto extrêmement intéressant... mais j'ai quand même du mal à être convaincu du bien fondé de la séparation qu'on pourrait qualifier d'extrêmiste.
Ok, OK... mais je ne suis toujours pas 100% convaincu.
Modifié par QuentinC (12 Sep 2006 - 06:51)
Laissons AJAX de côté pour le moment, je n'ai pas envie d'embrouiller les moins expérimentés.
Peut-être que j'y viendrai au moment de parler de listes déroulantes liées.
Quant au onblur, j'aime pas trop le principe d'être dérangé toutes les 30 secondes à peine je remplis un champ. Je ne sais pas, ça me semble plus naturel de faire la vérification à la fin.
Quand on remplit un formulaire papier, celui à qui il est destiné ne lit pas sur tes épaules ... il te le retourne s'il est mal rempli, après coup.
Je sais, c'est peut-être idiot comme comparaison...
Je vais rentrer dans un autre débat, mais c'est un peu comme la pagination sur le web : pourquoi on l'utilise, c'est tout simplement parce qu'on est habitué à tourner des pages quand on lis sur papier. Personnellement, je trouve que c'est absurde, il existe des scrollbars, et ça m'énerve de cliquer sans arrêt sur page suivante. Si ça ne tenait qu'à moi, je supprimerais purement et simplement pour tout mettre sur la même page. Surtout qu'avec une TOC, on règle le problème de la navigation rapide.
koala64 a écrit :
Externalisation complète du script et modèle objet
Où je souhaite en venir ?
ben... Te viendrait-il à l'idée de proposer un tuto avec des styles définis au sein des balises HTML pour montrer comment centrer une boîte CSS ?
Alors dans le cadre d'un tuto, oui. C'est plus simple de consulter le code de chaque exemple de cette manière, je trouve.
Par contre, évidemment que pour un site, non, j'ai pris l'habitude de séparer CSS et HTML et de profiter des avantages que cela suppose, c'est pas pour revenir à du <font>.
Le vrai avantage du CSS, c'est de pouvoir faire le design en un seul fichier, et de ne plus avoir à s'en préoccuper après. Une fois le CSS écrit, il n'y a plus qu'à structurer logiquement et le design se fait tout seul.
Le design d'un site est le même sur toutes les pages, c'est ce qui rend CSS si pratique.
Pour le javascript, c'est plus compliqué : il y a des fonctions qui sont constantes sur toutes les pages et là, j'adhère au même principe de séparation : un seul fichier pour modifier le comportement de tout le site.
Mais parralèlement, il existe une multitude de fonctions qui sont différentes sur toutes les pages : c'est notamment le cas des fonctions de vérification de formulaire. Ils sont tous différents, et il nécéssitent donc une fonction de vérification js propre à chacun.
Je ne vois pas l'intérêt d'externaliser ces fonctions étant donné qu'elles sont différentes pour chaque page, et que, par conséquent, cela entraînerait une multiplication des fichiers .js. Pourquoi charger systématiquement deux fichiers au lieu d'un ? aucun intérêt : on doit écrire autant de code, et on ne profite pas de la mise en cache.
Quand le code ne doit pas être réutilisé sur plusieurs pages, je n'en vois pas l'intérêt, c'est aussi simple que ça.
J'ai déjà essayé de généraliser mes fonctions de vérification de formulaire notamment en utilisant l'attribut class, comme le prouve mon script form-checker. Mais cela se révèle insuffisant pour la plupart des formulaires complexes en fait. Et en passant des informations par l'attribut class, quelque part, j'esquisse tout de même le comportement ...
A quand un xforms ou un webforms2 ? en réalité une fois qu'ils seront supportés, mon tuto n'aura plus aucun intérêt.
Donc en résumé : un petit <style>...</style> ou un petit onclick orphelin n'a jamais fait de tort à personne. Ca ne sert à rien de faire un fichier .js (ou .css, même débat) juste pour 2-3 lignes de code qui ne sont utilisés que sur une seule page.
koala64 a écrit :
Il ne s'agit pas de faire tout un cours sur DOM mais la manière dont on lie les éléments d'un formulaire à un script, à savoir mettre des id et des class sur les balises HTML et se servir d'instructions telles que getElementById, getElementsByTagName, className ou encore window.onload dans le script devraient faire partie des notions prérequises...
Le problème c'est qu'après le lecteur va peut-être avoir du mal à trouver l'info qu'il souhaite.
Entre trouver un script de 10 lignes juste en-dessous d'un formulaire d'exemple et chercher une fonction de 10 lignes dans un code de 20 Ko, je préfère la première. D'autant plus que les fonctions présentées ne sont jamais réutilisées ailleurs et que justement c'est à titre d'exemple.
Koala64 a écrit :
J'ai commencé à coder en JS par là, il y a un an, et je n'ai aujourd'hui jamais recours à l'intrusion d'un code JS dans le HTML, pas même un onclick ou quoi que ce soit d'autre. Je te confirme qu'on peut donc commencer son apprentissage du JS par là :
Vite, l'url de ton site, je veux voir ça. Pas un seul onXXX, j'ai quand même du mal à y croire. Tu en as forcément besoin quelque part... non ?
Autre question, combien as-tu de fichiers .js qui font moins de 1 Ko, juste par curiosité ? je serais prêt à parier sur "beaucoup".
Koala64 a écrit :
Je considère donc qu'avant de lire ton tuto, les utilisateurs doivent en connaître d'autres tels que celui-ci. Ce n'est franchement pas la mer à boire et celà permettra de s'orienter enfin sur des pratiques réellement standards...
Merci pour ce tuto extrêmement intéressant... mais j'ai quand même du mal à être convaincu du bien fondé de la séparation qu'on pourrait qualifier d'extrêmiste.
Koala64 a écrit :
A la rigueur, les points que je développe dans mon tuto tels que le modèle objet et la constitution de bonnes méthodes sont (je l'admets) optionnels mais je peux te dire qu'un bouquin tel que celui-là part des bases JS et s'oriente vite là dessus pour ne coder plus qu'en suivant ce modèle... Ce n'est pas pour rien qu'il apparaît comme une référence...
Bref, pour être à jour, c'est ce que j'en dit...
Ok, OK... mais je ne suis toujours pas 100% convaincu.
Modifié par QuentinC (12 Sep 2006 - 06:51)