De mon point de vue, ce n’est pas pour rien que tout le monde a oublié xslt : cette techno est une mauvaise idée.
Oui, les critiques que tu cites sont bonnes. Mais c'est pour dire qu'on avait déjà pensé à quelque-chose qui permettait de soulager le serveur, et que c'était fait en s'intégrant plutôt « bien » au workflow XML. Mais c'est clair que sa syntaxe verbeuse et ses fonctionnalités de calcul et de manipulation de chaîne sont de très gros défauts. Cependant, je n'ai jamais retrouvé nulle-part le même facilité de manipulation d'arbre et de matching (avec choix du sélecteur le plus strict, vraiment quelque-chose de génial !) qu'il apporte.
Cela dit, c’est peut-être exagéré de dire ça, peut-être que je peux avoir le même ordre de grandeur avec une techno de template côté serveur type django (mon expérience avec django, certes faible, me fait toutefois préférer le système angularjs).
J'ai peu d'expérience avec les framework JS, mais je ne vois pas pourquoi ça ne se vaudrait pas. Un moteur de template c'est un peu toujours la même chose quel que soit le langage...
Ça ne sera pas moche, ça sera inexploitable. Ajax sans javascript, ça ne peut pas marcher. Après, tu peux requêter toi-même les pages et récupérer le json (oui, on n’utilise plus xml même si le terme ajax est resté). Mais c’est un compromis que personne n’est prêt à accepter.
Ça dépend pour quoi. Franchement, quand c'est juste pour afficher une ressource sur une page simple que tu as besoin d'Ajax (pour du templating, typiquement), il faut tout simplement supprimer cette requête inutile ! Et pas besoin de faire le calcul N fois côté serveur : tu caches le résultat, point barre, comme ça l'effort est économisé des deux côtés.
Par contre, si c'est pour une fonctionnalité « avancée », pourquoi pas, mais j'avoue rarement avoir de bonne justification pour ça. Plein de fois où je dois activer le JS, j'imagine tout de suite une manière de faire en statique pour le client, sans surcharge pour le serveur. Comme je dis à groumf plus haut, bien sûr que je ne demande pas à GMail de marcher sans JS, mais je parle de toutes les « applications » entre deux.
Mais il y en a aussi pléthore qui te donneront tort (on fait beaucoup mieux avec JS que sans). Et qu’à un moment, le mode « dégradé » n’est plus possible, car c’est tellement loin du mode pas dégradé que ça ne peut plus fonctionner.
Bah j'aimerais bien avoir des exemples, car mon coup de gueule est pour des exemples plutôt simples à chaque fois. Tiens par exemple, un contre-exemple, c'est l'Agenda du Libre : je viens de remplir un évènement http://www.agendadulibre.org/events/new, et bien c'est tout à fait faisable sans JS ! Et le mieux, c'est que même si j'active le JS au cours du remplissage, je ne perds même pas mon contenu car ils utilisent le JS juste comme il faut pour ne pas obstruer le fonctionnement du navigateur sur la mémorisation ! Franchement, ça c'est un super exemple de bonne dégradation. Bravo l'ADL !
En attendant, ce qui est important, c’est surtout de ne pas casser les fonctionnalités utilisateur, comme :
- précédent / suivant
Oui, avec les classiques redirections pour les POST, ne pas mettre l'état du client côté serveur pour faire je ne sais quoi « d'intelligent », et mettre à jour l'URL actuelle quand en JS on modifie l'état de la page. Rien que si déjà les devs respectaient ça, ça serait beaucoup mieux. Je ne sais malheureusement pas si ce sont des principes bien enseignés.
les marques-pages
Oui, c'est lié au précédent. Ça me fait penser également au problème du JS qui se bind sur les évènements claviers sans vérifier le modifier, ou du coup mes raccourcis clavier (avec alt/control) font faire des trucs bizarre à la page (qui ne voit qu'un évènement pour la lettre)... assez énervant.
les choix de navigation (nouvel onglet / nouvelle fenêtre)
Ça j'avoue ne plus trop le voir, peut-être que les navigateurs forcent de toutes façons un comportement correct maintenant.
j’en oublie sûrement
Utiliser des a avec href pour les liens, il n'y a pas d'excuse (réécriture machin, tweaker le référencement blahblah) ; mettre des sources pour votre image, même en version pixélisée s'il le faut, mais ne pas charger les images uniquement en JS ; au moins essayer une fois votre site sans JS pour voir la galère que c'est pour certains ; ne pas utiliser du JS pour charger du JS (c'est fou ce que c'est la mode) car ça oblige à faire l'autorisation en plusieurs étapes (des fois ça monte à 5 ou 6 ; souvent, j'abandonne avant) ; ne pas recharger la page pour rien (même avec une balise meta !) ; je dois en oublier également...
[^] # Re: La présentation oublie des infos essentielles
Posté par benoar . En réponse à la dépêche « Fourmilieres », un générateur de formulaires qui permet de reprendre la main sur vos données. Évalué à 3.
Oui, les critiques que tu cites sont bonnes. Mais c'est pour dire qu'on avait déjà pensé à quelque-chose qui permettait de soulager le serveur, et que c'était fait en s'intégrant plutôt « bien » au workflow XML. Mais c'est clair que sa syntaxe verbeuse et ses fonctionnalités de calcul et de manipulation de chaîne sont de très gros défauts. Cependant, je n'ai jamais retrouvé nulle-part le même facilité de manipulation d'arbre et de matching (avec choix du sélecteur le plus strict, vraiment quelque-chose de génial !) qu'il apporte.
J'ai peu d'expérience avec les framework JS, mais je ne vois pas pourquoi ça ne se vaudrait pas. Un moteur de template c'est un peu toujours la même chose quel que soit le langage...
Ça dépend pour quoi. Franchement, quand c'est juste pour afficher une ressource sur une page simple que tu as besoin d'Ajax (pour du templating, typiquement), il faut tout simplement supprimer cette requête inutile ! Et pas besoin de faire le calcul N fois côté serveur : tu caches le résultat, point barre, comme ça l'effort est économisé des deux côtés.
Par contre, si c'est pour une fonctionnalité « avancée », pourquoi pas, mais j'avoue rarement avoir de bonne justification pour ça. Plein de fois où je dois activer le JS, j'imagine tout de suite une manière de faire en statique pour le client, sans surcharge pour le serveur. Comme je dis à groumf plus haut, bien sûr que je ne demande pas à GMail de marcher sans JS, mais je parle de toutes les « applications » entre deux.
Bah j'aimerais bien avoir des exemples, car mon coup de gueule est pour des exemples plutôt simples à chaque fois. Tiens par exemple, un contre-exemple, c'est l'Agenda du Libre : je viens de remplir un évènement http://www.agendadulibre.org/events/new, et bien c'est tout à fait faisable sans JS ! Et le mieux, c'est que même si j'active le JS au cours du remplissage, je ne perds même pas mon contenu car ils utilisent le JS juste comme il faut pour ne pas obstruer le fonctionnement du navigateur sur la mémorisation ! Franchement, ça c'est un super exemple de bonne dégradation. Bravo l'ADL !
Oui, avec les classiques redirections pour les POST, ne pas mettre l'état du client côté serveur pour faire je ne sais quoi « d'intelligent », et mettre à jour l'URL actuelle quand en JS on modifie l'état de la page. Rien que si déjà les devs respectaient ça, ça serait beaucoup mieux. Je ne sais malheureusement pas si ce sont des principes bien enseignés.
Oui, c'est lié au précédent. Ça me fait penser également au problème du JS qui se bind sur les évènements claviers sans vérifier le modifier, ou du coup mes raccourcis clavier (avec alt/control) font faire des trucs bizarre à la page (qui ne voit qu'un évènement pour la lettre)... assez énervant.
Ça j'avoue ne plus trop le voir, peut-être que les navigateurs forcent de toutes façons un comportement correct maintenant.
Utiliser des
aavechrefpour les liens, il n'y a pas d'excuse (réécriture machin, tweaker le référencement blahblah) ; mettre des sources pour votre image, même en version pixélisée s'il le faut, mais ne pas charger les images uniquement en JS ; au moins essayer une fois votre site sans JS pour voir la galère que c'est pour certains ; ne pas utiliser du JS pour charger du JS (c'est fou ce que c'est la mode) car ça oblige à faire l'autorisation en plusieurs étapes (des fois ça monte à 5 ou 6 ; souvent, j'abandonne avant) ; ne pas recharger la page pour rien (même avec une balise meta !) ; je dois en oublier également...