Est-ce une pratique courante de minimiser l'utilisation de JavaScript lors de la création d'un site Web? [fermé]

32

Je suis développeur Web depuis près de 10 ans et j'ai pris l'habitude d'essayer de ne pas utiliser JavaScript autant que possible. Je ne parle pas de créer des applications Web ici, mais des sites Web basés sur des bases de données.

Est-ce une bonne approche / respectée?

Ryan
la source
6
Je désactive le javascript standard et noscript me dit à partir de quelles sources les javscripts sont chargés. Il n'est pas rare qu'un site Web charge des javascripts de plus de 10 sources secondaires, qui à leur tour chargent également des javascripts de sources tertiaires. Et il n'est pas rare qu'une page charge du javascript depuis plus de 20 sources externes au total. Je dirais donc: minimiser l'utilisation de javascript est hors de la fenêtre.
Pieter B
9
J'ai observé que plus vous vous fiez à javascript, moins votre site sera convivial pour la navigation et le référencement. Je ne peux pas compter le nombre de sites Web que j'ai laissés en raison de "liens javascript" et autres.
BiAiB
1
J'ai trouvé qu'il y a beaucoup de javascript sur internetz. Les problèmes sont: 1) les indexeurs simples ne comprennent pas js, 2) une grande quantité de js brûle CPU 3) certaines plates-formes n'ont toujours pas js (téléphones, navigateur de liens). Donc, éviter les js lorsqu'ils ne sont pas nécessaires est une bonne pratique.
permeakra
Pourquoi cette question de la semaine? Je voterais sur ce point pas clair et pas constructif. En général, "dois-je utiliser X?" les questions ne sont pas appréciées sur ce site. Peut-être que quelqu'un peut m'éclairer.
Mark E. Haase
La pile Web Microsoft a (jusqu'à présent avec MVC) reposé sur JS pour CHAQUE CLIC DE BOUTON UNIQUE dans ASP.NET et SharePoint. Donc non, ce n'est pas courant de minimiser l'utilisation.
Graham

Réponses:

51

C'est l'instinct de la plupart des programmeurs de réduire toutes sortes de code. Moins de code, moins de complexité et moins de points d'erreur possible dans ledit code. Cette règle s'applique à Javascript aussi bien qu'aux autres langues. Vous ne faites que maintenir la tradition.

Utilisez Javascript comme nécessaire / souhaité dans les pages HTML ... mais il n'y a aucune raison de l'utiliser lorsque ce n'est pas vraiment nécessaire.

Grand maître b
la source
9
Éviter JavaScript est différent de l'instinct général pour éviter plus de code. Avec JS, il ne s'agit pas seulement de réduire la complexité du développement; il y a de vrais problèmes de compatibilité avec vos utilisateurs.
jhocking
34

Il y a 10 ans, cela aurait pu être une bonne idée. De nos jours, la plupart des parties d'Internet (- au moins certaines parties très populaires -) sont devenues presque inutilisables, ou ne fournissent qu'une fonctionnalité très limitée, lors de la désactivation de Javascript dans le navigateur. Donc, à mon humble avis, vous pouvez vous attendre à ce que vos utilisateurs aient activé Javascript.

Et il existe de nombreux frameworks comme JQuery pour contourner les incompatibilités de navigateur. À mon humble avis, il n'y a pas de raison réelle aujourd'hui de vous limiter en n'utilisant pas Javascript pour votre site Web - la seule raison peut être que vous n'en avez aucune utilisation.

EDIT: une autre question est: si vous devez fournir des fonctionnalités minimales de votre site Web lorsque vos visiteurs n'ont pas activé JS - c'est surtout une bonne idée, pour les raisons que certains commentateurs ont soulignées.

EDIT2: pour chaque site Web, il faut sûrement trouver un équilibre entre convivialité, convivialité des moteurs de recherche et efforts de développement. IMHO aujourd'hui Javascript peut aider à améliorer cet équilibre - s'il est utilisé à bon escient. Cela dit, je pense qu'il n'est plus nécessaire de minimiser l'utilisation de Javascript aujourd'hui pour maintenir cet équilibre. Utilisez-le avec soin et ne le diabolisez pas.

Doc Brown
la source
17
En voici quelques-uns: SEO, agrégateurs Web, lecteurs d'écran, NoScript, curl, navigateurs mobiles. Je désactive les scripts par défaut, et la plupart d'Internet fonctionne toujours très bien.
tdammers
7
Si un site n'est pas utilisable sans javascript, il ne peut pas être efficacement exploré par Google, et il peut ou non être utilisable dans un contexte RESTful. Même Facebook est au moins utilisable de manière minimale sans javascript
GordonM
9
Je suis d'accord avec la plupart de ce qui est dit ici, mais je m'oppose fermement à l'idée qu'un site devrait être "au moins minimalement utilisable sans JavaScript". C'est faux: il devrait être utilisable au maximum sans JavaScript.
Jörg W Mittag
4
@ JörgWMittag si vous souhaitez désactiver une technologie Web, vous ne devez pas vous attendre à profiter pleinement des avantages du site Web. Les scénarios diffèrent, mais si je crée une application Web, je ne perds probablement pas mon temps à créer une compatibilité totale pour une minorité de mes utilisateurs qui refusent de passer au 21e siècle. Similaire à la façon dont je ne supporte pas IE 6 dans la plupart de mes projets.
Tom Marthenal
2
Il est uniquement professionnel de prendre en charge tous les cas d'utilisation. Si vous l'avez manqué, ça va, tout le monde se trompe de temps en temps, mais les négliger est un problème différent. Je suis pour le développement de sites Web à 100% SANS JS, et après l'avoir fait fonctionner, ajoutez le JS pour rationaliser les tâches et améliorer l'UX.
Spidey
13

Avoir un site qui peut être utilisé sans JavaScript signifie qu'il est accessible au public le plus large possible. Bien qu'il soit vrai que la majorité des navigateurs prennent en charge JavaScript et que la majorité des utilisateurs le laissent par défaut, vous ne pouvez pas compter sur cela à coup sûr. Tout ce qui accède à votre site n'est pas un navigateur après tout; si vous voulez que votre site soit correctement indexé par les moteurs de recherche tels que Google, alors GoogleBot doit pouvoir naviguer sur votre site sans JavaScript.

Il existe également des logiciels spécialisés de navigation Web où JavaScript n'est pas disponible ou ne fonctionne pas comme prévu. Logiciel de lecture d'écran ou braille utilisé par les malvoyants, par exemple. Il existe également des environnements où la mémoire est limitée et le fait d'avoir de grandes quantités de javascript peut rendre l'expérience de navigation désagréable ou même peu pratique, comme les navigateurs de smartphones.

Vous devriez vous pencher sur le concept de "l'amélioration progressive", où vous créez un site pour fonctionner sans javascript, puis ajoutez une couche javascript sur le dessus pour améliorer l'expérience utilisateur. De cette façon, vous aurez un site qui est au moins utilisable par des personnes sans javascript.

Vous n'avez pas besoin de vous efforcer de fournir toutes les fonctionnalités possibles que vous prévoyez d'implémenter avec JavaScript aux navigateurs non JavaScript, mais il est toujours important de laisser au moins les cas d'utilisation de base disponibles sans JavaScript. Être en mesure de naviguer sur le site est évidemment en tête de liste, mais si vous créez un site de commerce électronique, rendre le processus de paiement dépendant de JavaScript serait idiot car cela pourrait vous coûter des ventes.

GordonM
la source
4
Absolument. Javascript doit être utilisé comme épice, pas comme plat principal.
hlovdal
9

Les autres réponses semblent se concentrer sur "si je n'utilise jamais JavaScript", donc je pense qu'ils manquent de raison. Vous ne devez pas utiliser JavaScript si vous n'en avez pas besoin. Certaines personnes utilisent JavaScript pour tout :

  • Effets de survol (devrait être CSS)
  • AJAX (devrait avoir hrefquand raisonnable)
  • Positionnement (devrait être CSS)

Les avantages sont des choses comme:

  • Le site s'affiche plus rapidement
  • CSS est beaucoup moins complexe que JavaScript la plupart du temps
  • Avoir des hrefliens de sauvegarde aide les moteurs de recherche, les utilisateurs qui souhaitent ouvrir des liens dans d'autres onglets et les utilisateurs qui détestent JavaScript

Bien sûr, AJAX est assez cool, tout comme les pages dynamiques, alors ne jetez pas ces choses simplement parce que certaines personnes n'en ont pas besoin.

Mon point est, apprendre à faire des choses sans JavaScript est bon, minimiser JavaScript est bon, et avoir une sauvegarde lorsque JavaScript ne fonctionne pas est bon, mais il n'y a aucune raison d'éviter les fonctionnalités car elles nécessitent JavaScript.

Rétablir Monica
la source
1
Je me souviens avoir reçu des conseils il y a de nombreuses années, à propos de (ce qu'on appelait à l'époque) les interfaces homme-machine: "Ce n'est pas parce que vous le pouvez, que vous devriez le faire". son et similaires devraient prendre en compte.
Andrew
8

C'est une bonne idée d'éviter les fonctionnalités inutiles, point final. Des cadres comme jQuery facilitent incroyablement l'ajout de fioritures qui peuvent être judicieuses à ajouter, mais parfois non. Par exemple:

Avez-vous vraiment besoin d'animer cela?

... ou ...

La traversée de l'ensemble du DOM est-elle vraiment nécessaire pour un sélecteur aussi trivial? Pourriez-vous le limiter en utilisant le contexte, et en avons-nous besoin en premier lieu?

Je n'éviterais pas d' utiliser JS, mais je prends soin de ne pas être désagréable, tout en cherchant des machines plus lentes. La même chose vaut pour certaines des nouveautés fantaisistes que nous obtenons dans CSS3 - comme les ombres portées… si elles sont utilisées de manière excessive, elles peuvent faire que quelqu'un sur une machine moins puissante ait une très mauvaise expérience.

L'exception à cela pourrait être l'écriture de contrôles frontaux pour différents types d'appareils, où ils doivent absolument fonctionner avec JS désactivé (peut-être qu'une politique de sécurité stricte sur un réseau de gestion de centre de données ne dicte aucun JS). Donc, ce qui précède doit être pris en contexte avec toutes les exigences que vous avez.

Tim Post
la source
6

Je crois qu'étant un développeur Web relativement nouveau et jeune (environ 4 ans), j'ai dû faire beaucoup de recherches à ce sujet car le javascript est partout.

Ce que j'essaie de faire sur mes projets, c'est de m'assurer que le site fonctionne sans javascript, puis d'ajouter javascript là où cela a du sens (validation côté client, amélioration de l'interface utilisateur, etc.). C'est une sorte d' amélioration progressive et il prend en charge le référencement, le javascript désactivé et les anciennes incompatibilités du navigateur.

Cette même question a été posée sur SO, mais je ne peux pas pour l'amour de moi me rappeler où.

Awemo
la source
5

L'utilisation de JavaScript peut être limitée dans plusieurs cas:

  • Validation. Cela doit être fait côté serveur. Parfois, dans les applications Web, la validation côté client est rapide, mais elle ne suffit pas.
  • Tâches extrêmement importantes. Les utilisateurs peuvent choisir de désactiver les scripts de leur navigateur, de sorte que le code JS ne fonctionnera pas du tout. Si vous voulez être sûr que quelque chose fonctionnera dans tous les cas sur n'importe quel navigateur, ne faites pas confiance à JS.
  • La vitesse. Le code JS doit être envoyé au client, et plus vous écrivez de code, plus cela prend de temps. Bien que de petites quantités de code n'auront aucun effet pratique.

JS a un énorme tas de fonctionnalités, qui ne peuvent pas être remplacées par du code côté serveur. À part ceux ci-dessus, je ne pense pas qu'il y aurait d'argument raisonnable pour limiter l'utilisation de JS.

superM
la source
5

Les " sites Web basés sur des bases de données " sont la clé de la réponse. Il existe deux façons de créer des sites Web, et la quantité de Javascript autorisée dépend vraiment de celui que vous utilisez. Vous pouvez construire:

  1. Sites Web axés sur le contenu . Dans le premier cas, les mots magiques sont "amélioration progressive"; limiter javascript aux fonctions redondantes qui peuvent être fournies avec des accès classiques au contenu via HTTP simple.

  2. Applications Web . Pour les applications, vous utilisez plutôt le Web comme plate-forme logicielle. Les applications s'appuient sur certaines hypothèses sur les logiciels disponibles - navigateurs modernes, dernières versions des bibliothèques javascript populaires, accès au bureau avec la souris et / ou les tablettes avec le multi-touch.

Le web comme plateforme logicielle

Les exigences d'accès minimum sont OK si vous créez vraiment une application - vous ciblez une plate-forme spécifique pour obtenir des fonctionnalités avancées qui ne pourraient pas être construites autrement. C'est comme développer pour Python ou Java ou .Net. Ne laissez pas les mots à la mode comme HTML5 et la promesse de "courir n'importe où" vous tromper; vous ne pouvez avoir du code portable entre les appareils que tant que la plate-forme entière est prise en charge sur ceux-ci. Toute modification apportée à la pile de développement, et le logiciel s'arrêtera.

Ainsi, le prix à payer est que vous suivez un objectif en mouvement, à mesure que de nouvelles versions de la plateforme sont publiées; vous devrez faire du rattrapage pour que votre application continue de fonctionner à mesure que la plateforme évolue. Le seul avantage que vous obtenez est un mécanisme de livraison semi-universel pour votre application qui ne dépend pas des packages ni des magasins d'applications; mais vous perdez la principale caractéristique qui différencie le Web des précédents systèmes informatiques en réseau.

Le Web comme diffusion de contenu

Les sites Web axés sur le contenu sont une bête différente; ils sont dans la tradition du World Wide Web classique. Le contenu est interprété de manière lâche par le client, qui peut effectuer toute transformation souhaitée avant la présentation. Le site devrait être accessible par un écosystème de différentes plates-formes qui peuvent ou non prendre en charge les normes actuelles:

  • Appareils mobiles prenant en charge moins que les cloches et les sifflets les plus récents et les plus chers
  • Anciens utilisateurs de navigateur qui ne peuvent pas (à l'entreprise) ou ne savent pas (à la maison) comment mettre à jour
  • Versions futures de moteurs populaires qui déconseillent leurs anciennes API

Vous les perdrez tous si vous avez besoin de la race actuelle de javascript, qui est en constante évolution. Dans ce contexte, un javascript cassé qui empêche d'accéder au contenu est un péché.

Tous ceux qui disent que "l'utilisation de javascript devrait être minimisée" préconisent ce style. Vous pouvez inclure du JS, c'est bien, mais toutes les fonctions doivent être redondantes avec des accès de base au contenu qui pourraient être réalisés côté serveur:

  • Validation de la saisie des données
  • Mises à jour AJAX du contenu pour une navigation plus rapide (qui fonctionne néanmoins sans JS)

L'avantage de cette approche est moins de tests et de mises à niveau requis, et plus de durée de vie. Les premières pages Web statiques d'il y a 20 ans sont toujours consultables dans n'importe quel client Web, mais les premières applications Web sont définitivement interrompues. Si votre site a une quelconque valeur d'archivage, vous bénéficierez à long terme de l'utilisation du Web comme système de diffusion de contenu, et non comme plate-forme d'application.

TuringTest
la source
3

Je travaille pour le gouvernement de mon État et, par conséquent, la majeure partie de mon développement implique des sites Web interactifs basés sur les données. Des requêtes sur des données historiques, des soumissions de formulaires, des choses comme ça. Nous gardons notre Javascript au minimum absolu, pour les raisons suivantes:

1) La validation des entrées de formulaire doit toujours avoir lieu côté serveur, jamais côté client. Si vous tentez de valider vos entrées côté client, il suffit à un pirate de créer une copie locale de votre page web et de réécrire le Javascript pour autoriser ce qu'il veut vous envoyer (injection SQL, etc.). Votre validation doit avoir lieu quelque part sous votre contrôle exclusif, c'est-à-dire sur le serveur.

2) De nombreux utilisateurs désactivent Javascript ou utilisent un navigateur qui peut ne pas l'implémenter correctement. En tant que gouvernement, nous devons soutenir tout le monde, même s'ils utilisent vraiment de très vieux équipements. HTML fonctionne partout; Javascript, pas tellement. En n'utilisant pas Javascript dans vos pages Web, vous leur donnez une très petite empreinte sur la machine cliente, en utilisant peu de ressources. Cela maximise le nombre de personnes qui peuvent accéder à votre contenu. Pour la même raison, vous ne devriez pas devenir trop fou avec votre CSS. Gardez les choses simples, gardez-les propres et laissez les petites vieilles dames voir votre site même si leur ordinateur a été acheté en 1999 (Soit dit en passant, nous recevons des appels d'assistance technique de personnes comme celle-ci).

3) Javascript, étant un outil préféré des "développeurs web" plutôt que des programmeurs côté serveur, a tendance à être assez moche. Et les concepteurs (ce que sont généralement les développeurs Web, si vous voulez être honnête) ont tendance à ne pas voir le problème du téléchargement de "scripts" à partir d'endroits aléatoires sur le Web. Ils disent des choses comme "pourquoi réinventer la roue?" et "Pas inventé ici". Ainsi, au lieu d'écrire leur propre code, ils sortent souvent et prennent quelque chose sur un autre site, pensant que si c'est sur Internet, c'est un jeu équitable. Il y a deux problèmes avec cela: A) ils peuvent publier par inadvertance du Javascript malveillant qui vous prend un certain temps à attraper, et B) ils peuvent aller à l'encontre du droit d'auteur de quelqu'un et vous faire poursuivre en justice. Les deux situations sont à éviter.

EN GÉNÉRAL, Javascript est une mauvaise idée. Le code côté client de TOUT type est une mauvaise idée. Le côté client ne doit contenir que du langage de balisage et du CSS; laissez le côté serveur gérer le levage de charges lourdes.

Phil
la source
2

Ça dépend.

Bien que les agents utilisateurs de bureau puissent prendre en charge et exécuter votre javascript de manière significative, tous les agents utilisateurs ne sont pas des navigateurs graphiques de bureau, et vous devez décider si vous souhaitez les prendre en charge.

Les exemples comprennent:

  • moteurs de recherche (Google exécute un peu de javascript, mais certainement pas tout, et si vous comptez sur javascript pour la navigation, les robots de recherche pourraient ne pas trouver tout votre contenu)
  • agrégateurs et grattoirs
  • navigateurs à base de texte (cependant, peu de gens les utilisent)
  • lecteurs d'écran et autres aides à la lecture
  • (certains) navigateurs mobiles

Ma règle de base est que si c'est une application Web pour les utilisateurs réguliers (en interne, communautaire, ce genre de chose), alors s'appuyer sur javascript est OK, mais si vous voulez être accessible au public et trouvable, alors au moins l'essentiel la fonctionnalité devrait fonctionner parfaitement sans javascript, et vous devriez échouer gracieusement lorsque vous en avez besoin, plutôt que de présenter un comportement «non défini».

tdammers
la source
2

L'approche à l'ancienne est totalement dépassée. Par exemple, j'ai fait une suppression ajax pour le modérateur sur l'un des sites et il est juste content à cause de l'augmentation évidente de la vitesse.

Bien sûr, le développeur peut faire deux versions pour les utilisateurs JS et non JS, mais dans la plupart des cas, c'est extrêmement cher et ne vaut pas 1-2% de l'audience du site Web (si vous n'êtes pas Google, bien sûr).

Donc ma réponse serait NON - JavaScript est la réponse à de nombreuses questions sur l'expérience utilisateur, pourquoi ne devrais-je pas l'utiliser?

user1065145
la source
1

D'après mon expérience, il fut un temps où les entreprises désactivaient JavaScript par politique. Mais ce temps est loin. Actuellement, j'ai créé de grandes applications intranet et applications Web pour de plus grandes entreprises mondiales. Pour toutes les applications, l'utilisation de JavaScript et de JQuery faisait partie des choses que le client attend.

Créer des applications pour les clients n'est plus seulement une question de rapidité et de sécurité. Le client souhaite se concentrer sur la convivialité et l'utilisation de la technologie AJAX. Sans l'utilisation de JavaScript, cela ne fonctionnerait pas aussi bien. PostBacks tout le temps pour de très petites tâches comme le calcul ou quelque chose comme ça n'est pas une option pour la plupart des entreprises.

Lorsque nous pensons à la situation actuelle dans les grandes entreprises, il y a un autre indicateur pourquoi JavaScript est actuellement un must have. Regardez les systèmes CMS qui fonctionnent actuellement en entreprise. La plupart d'entre eux utilisent Microsoft SharePoint ou Adobe CQ, certains d'entre eux Drupal ou tout autre et ainsi de suite. Tous ces systèmes reposent sur JavaScript. Sans javascript, la plupart des applications ne fonctionneraient pas, comme l'utilisateur s'y attend.

Smokefoot
la source
0

Autrefois, JavaScript était utilisé et abusé, et les scripts étaient (perçus comme) pleins de vulnérabilités et une source de logiciels malveillants.

De nombreux réseaux d'entreprise ont réagi en désactivant JS, une stratégie qui (à tort ou à raison) existe toujours dans de nombreuses organisations aujourd'hui.

Tout simplement, je suggère qu'aucun site ne devrait s'appuyer sur JS pour fonctionner

Andrew
la source
3
Je pense que cette opinion est totalement dépassée. La plupart des entreprises utilisent SharePoint ou CQ pour les solutions intranet. Les deux systèmes reposent vraiment sur JS.
Smokefoot
Je réfute absolument que "la plupart des entreprises" utilisent Sharepoint ... et même pour les entreprises qui autorisent JS en interne, les paramètres Intranet peuvent être différents de ceux externes.
Andrew
0

Comme l'expliquent la plupart des réponses ici, l'utilisation javascriptn'est pas nuisible. Si vous souhaitez enregistrer votre codage et votre code source d'apparence désordonnée, essayez coffee-scriptce qui économisera beaucoup d'efforts de frappe javascript.

http://coffeescript.org/

mithilatw
la source