J'ai posé une question hier Dois-je prendre la peine de développer pour JavaScript désactivé? . Je pense que le consencus est: Oui, je devrais développer pour JavaScript désactivé. Maintenant, je veux juste comprendre pourquoi les utilisateurs désactivent JS. Il semble que de nombreux développeurs (je suppose que les personnes qui ont répondu aux questions sont des développeurs) désactivent JS. Pourquoi donc. Pourquoi les utilisateurs désactivent-ils JS? Pour la sécurité? La vitesse? ou quoi?
L'un désactive JavaScript dans un environnement de navigateur pour les raisons suivantes:
Beaucoup d'applications utilisent beaucoup trop de JavaScript pour leur propre bien ... Avez-vous besoin d'actualiser des parties de votre interface par AJAX appelle tout le temps? Peut-être que votre interface se sent bien et rapidement lorsque utilisé avec une connexion à large bande, mais lorsque vous devez rétrograder à des vitesses de connexion plus lentes, une interface plus rationalisée est préférée. Et désactiver JavaScript est un bon moyen d'empêcher les applications Web stupides de rafraîchir le monde toutes les 15 secondes environ pour aucune bonne raison. (Avez-vous déjà regardé la quantité de données que Facebook envoie? C'est effrayant. Ce n'est pas seulement un problème lié à JS, mais il en fait partie).
Nous avons également tendance à décharger de plus en plus le traitement sur le client, et si vous utilisez du matériel minimaliste (ou tout simplement obsolète), c'est douloureusement lent.
Toutes les interfaces utilisateur ne doivent pas être exprimées de manière dynamique, et le contenu généré par le serveur peut être parfaitement acceptable dans de nombreux cas. De plus, certaines personnes ne veulent tout simplement pas ce type d'interfaces. Vous ne pouvez pas plaire à tout le monde, mais vous avez parfois la chance et le devoir de satisfaire tous vos utilisateurs.
Enfin, certains utilisateurs ont des handicaps, et tu ne les ignoreras pas , jamais !!!
Les pires scénarios ici, à mon avis, sont des sites Web gouvernementaux qui tentent de "moderniser" leurs interfaces utilisateur pour paraître plus conviviaux au public, mais finissent par laisser derrière eux une grande partie de leur public cible. De même, il est dommage qu'un étudiant universitaire ne puisse pas accéder au contenu de son cours: parce qu'il est aveugle et que son lecteur d'écran ne prend pas en charge le site, ou parce que le site est si lourd et nécessite des plug-ins modernes ad hoc qui il/elle ne peut pas installer sur cet ordinateur portable reconditionné acheté sur e-bay il y a 2 ans, ou encore parce qu'il/elle rentre chez lui dans un autre pays pour les vacances de printemps et les contraintes de bande passante locale ne peuvent pas faire face à la charge utile du site.
Tout le monde ne vit pas dans un monde parfait.
Ce point se rapporte aux 2 précédents et tend à être moins pertinent de nos jours, car les navigateurs intègrent des moteurs JavaScript qui sont d'un niveau d'amplitude plus efficace qu'auparavant, et cela ne cesse de s'améliorer.
Cependant, il n'y a aucune garantie que tous vos utilisateurs ont le privilège d'utiliser des navigateurs modernes (soit en raison de contraintes d'entreprise - qui nous obligent à prendre en charge les navigateurs antédiluviens sans raison valable, vraiment - ou pour d'autres raisons qui peuvent ou non être valides). Comme mentionné par "Matthieu M." dans les commentaires, vous devez vous rappeler que beaucoup de gens utilisent encore du matériel de qualité inférieure et que tout le monde n'utilise pas le smartphone le plus récent et le plus cool. À ce jour, il y a encore une part importante de personnes utilisant des téléphones dotés de navigateurs intégrés avec un support limité.
Mais, comme je l'ai mentionné, les choses s'améliorent dans ce domaine. Mais alors vous devez toujours vous rappeler les points précédents sur les limitations de bande passante si vous continuez à interroger très régulièrement (ou vos utilisateurs bénéficieront d'une belle facture de téléphone).
Tout cela est très interdépendant.
Bien que vous puissiez évidemment penser que rien de particulièrement dangereux ne peut être fait avec JavaScript étant donné qu'il fonctionne dans un environnement de navigateur, cela est totalement faux.
Vous vous rendez compte que lorsque vous visitez P.SE et SO vous êtes automatiquement connecté si vous étiez connecté à un autre réseau, non? Il y a du JS là-dedans. Ce bit est toujours inoffensif cependant, mais il utilise certains concepts qui peuvent être exploités par certains sites malveillants. Il est tout à fait possible pour un site Web d'utiliser JavaScript pour recueillir des informations sur certaines choses que vous faites (ou avez faites) pendant votre session de navigation (ou les précédentes si vous ne le faites pas). effacez vos données de session chaque fois que vous quittez votre navigateur ou exécutez les modes de navigation privée/privée désormais courants), puis téléchargez-les simplement sur un serveur.
Les vulnérabilités récentes (fonctionnant dans les principaux navigateurs à l'époque) incluaient la possibilité de recueillir vos données de formulaires de saisie enregistrées (en essayant pour vous des combinaisons sur une page malveillante et en enregistrant les textes suggérés pour chaque combinaison de lettres de départ possible , peut-être dire aux attaquants qui vous êtes, où vous travaillez et vivez ) ou extraire votre historique de navigation et vos habitudes ( n hack très intelligent faisant quelque chose d'aussi simple que injecter des liens dans le DOM de la page pour correspondre à la couleur du lien et voir s'il a été visité . Il vous suffit de le faire sur un tableau suffisamment grand de noms de domaine connus. Et votre navigateur accélère le traitement de JavaScript, ce type de choses se fait rapidement.)
De plus, n'oublions pas que si le modèle de sécurité de votre navigateur est défectueux ou que les sites Web que vous visitez ne se protègent pas suffisamment contre les attaques XSS, alors on pourrait utiliser JavaScript pour simplement exploiter vos sessions ouvertes sur des sites Web distants.
JavaScript est principalement inoffensif ... si vous l'utilisez pour des sites Web de confiance. Gmail. Facebook (peut-être ... et même pas ...). Google Reader. StackExchange.
Mais oui bien sûr, JavaScript ne peut pas être si mauvais, non? Et il y a de toute façon des choses plus effrayantes à craindre en ligne. Comme penser que vous êtes anonyme quand vous n'êtes vraiment pas beaucoup , comme le montre l'expérience Panopticlick de la EFF . Ce qui se fait également en partie en utilisant JavaScript. Vous pouvez même lire leurs raisons de désactiver JavaScript pour éviter les empreintes digitales du navigateur .
Cela étant dit, il peut y avoir de très bonnes situations où vous n'avez pas à vous soucier de la prise en charge de JavaScript. Mais si vous proposez un site Web de service public, envisagez d'accepter les deux types de clients. Personnellement, je pense que beaucoup d'applications Web et de sites Web modernes fonctionneraient tout aussi bien en utilisant l'ancien modèle de contenu généré par le serveur sans JavaScript du côté client, et ce serait toujours génial et peut-être beaucoup moins consommateur.
Votre kilométrage peut varier en fonction de votre projet.
Parce que faire confiance à quelqu'un pour écrire une bande dessinée drôle chaque matin et faire confiance à quelqu'un pour exécuter du code Turing-complete arbitraire sur mon ordinateur sont deux très choses différentes.
Je ne suis pas développeur Web et je n'ai qu'une compréhension modérée du fonctionnement d'Internet. C'est donc une réponse d'un utilisateur.
Mon expérience me porte à croire que de nombreux sites sont simplement mal codés, que ce soit par paresse ou par ignorance: lorsque je consultais une page Web essentiellement statique, comme une page Facebook, mon utilisation du processeur augmenterait par quelque chose comme 15%, et considérablement plus avec plusieurs onglets. Finalement, il est arrivé au point où je devais attendre une réponse après avoir cliqué sur un bouton ou un lien et mon processeur surchauffait et se bloquait.
Sur bon nombre de ces pires délinquants (sites), rien de visible ne change et rien d'interactif ne se produit. Je pouvais seulement supposer que le code du site faisait constamment des rafraîchissements, des sondages et des boucles sans fin.
Cela m'a conduit à installer NoScript pour libérer mon utilisation du processeur et arrêter la navigation de devenir une corvée frustrante.
L'autre add-on merveilleux que j'utilise est FlashBlock .
Je désactive JS pour des raisons de vitesse. TechCrunch sans JavaScript prend quelques secondes à charger avec un cache amorcé. Avec JavaScript, cela prend près de 20 secondes, plus si le cache n'est pas amorcé.
De nombreux sites sont devenus gonflés par JavaScript, en particulier les galeries d'images et les sites de commerce. La suppression de cela vous offre une meilleure expérience de navigation dans la plupart des cas.
Pour moi, tout est question de sécurité. J'utilise noscript pour permettre à certains sites Web d'exécuter javascript, tout en interdisant la plupart.
En fin de compte, vous ne savez vraiment jamais où se trouve le danger ( site Web nobel infecté sur techspot.com ). De nombreux exploits zero-day (et autres) utilisent javascipt; fermer cette seule voie d'attaque ressemble à un pas dans la bonne direction.
Ma principale raison est qu'elle supprime les publicités les plus ennuyeuses. Je préfère ne pas utiliser AdBlock Plus, car cela peut affecter les revenus des sites que je visite (et j'ai utilisé un site ou deux où les conditions d'utilisation m'ont dit de ne pas désactiver les publicités). NoScript limite le potentiel odieux des publicités, et je suis prêt à vivre avec les autres.
Il y a aussi la sécurité, et cela est également largement lié aux publicités, car tout site qui vend des publicités doit être considéré comme potentiellement hostile.
De plus, je ne sais pas nécessairement qu'un site est douteux avant de le visiter. Certaines personnes aiment envoyer des liens vers des sites et ne sont pas nécessairement honnêtes.
Parce que les navigateurs avaient l'habitude d'avoir des implémentations JavaScript lentes et que trop de concepteurs Web n00b ne l'utilisaient que pour des choses non pertinentes comme les survols de boutons.
Sur une machine rapide, avec un navigateur moderne, personne sensé ne la désactive tout le temps. Ce qui ne veut pas dire qu'il n'y a pas beaucoup de gens très "soucieux de la sécurité" et d'autres sans les fonds, le désir ou le savoir-faire pour exécuter un navigateur moderne sur un ordinateur rapide ... Ce n'est que récemment qu'IE6 a cessé d'être le navigateur le plus populaire sur Internet!
Avec Javascript activé, n'importe quel site Web peut exécuter du code sur mon ordinateur. Je ne sais même pas si le site Web en question exécute du code et ce qu'il fait. Pire encore, quelqu'un d'autre peut insérer du code à mon insu dans un site Web normalement inoffensif (XSS). Récemment, le célèbre magazine informatique allemand n'a pas publié d'article, mais un jeune de 16 ans a essayé les sites de banque en ligne des banques les plus courantes en Allemagne. Beaucoup d'entre eux - y compris les plus grands - étaient vulnérables à XSS. Et vous ne remarquez même pas que votre site de banque en ligne exécute du Javascript qui change par exemple la cible et le montant d'une transaction. Avec Javascript désactivé, l'attaque XSS dans le contexte d'un site de confiance est inutile, je n'exécute pas le code malveillant.