Pourquoi les gens désactivent-ils JavaScript?

59

J'ai posé une question hier Devrais-je prendre la peine de développer pour JavaScript désactivé? . Je pense que le consensus est: Oui, je devrais développer pour JavaScript Désactivé. Maintenant, je veux juste comprendre pourquoi les utilisateurs désactivent JS. Il semble que beaucoup de 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?

Jiew Meng
la source
9
Je pense que vous faites des suppositions basées sur des preuves anecdotiques. Le fait est que 99,7% des utilisateurs n’éteignent pas JS. En fait, s'ils avaient vraiment désactivé JS, ils n'auraient pas répondu à la question, car ce site ne fonctionne pas sans JS.
vartec
2
Je ne connais personne qui le connaisse.
Kirk.Burleson
6
@varted, @kirk: Je connais beaucoup de gens qui le savent, ou du moins en partie. Par exemple, beaucoup de personnes soucieuses de la sécurité n'autorisent JavaScript que sur les sites qu'elles ont mis en liste blanche. Et je connais beaucoup de personnes qui désactivent JS sur leur smartphone car il vaut souvent la peine d’utiliser la batterie qu’il draine.
Hayem
1
Par défaut, javascript est désactivé dans Chrome pour des raisons de sécurité, mais je l’active pour les sites Web qui en valent la peine. Je n'aime vraiment pas que tant de sites Web ne fonctionnent pas sans JavaScript, il y en a de plus en plus qui ne fonctionnent pas du tout.
Czarek Tomczak
2
@HannesKarppila Ils peuvent toujours utiliser des cookies interdomaines et des images de suivi de bugs Web, etc. Le suivi des utilisateurs fonctionne correctement à moins de désactiver javascript et les cookies, auquel cas Internet est plutôt inutilisable.
NickG

Réponses:

80

L'une désactive JavaScript dans un environnement de navigateur pour les raisons suivantes:

  • Vitesse et bande passante
  • Ergonomie et accessibilité
  • Support de plate-forme
  • Sécurité

Vitesse et bande passante

De nombreuses applications utilisent beaucoup trop de JavaScript pour leur propre intérêt ... Avez-vous besoin que des parties de votre interface soient rafraîchies à tout moment par des appels AJAX? Peut-être que votre interface est agréable et rapide lorsqu'elle est utilisée avec une connexion haut débit, mais lorsque vous devez passer à une vitesse de connexion plus lente, une interface plus simple est préférable. 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, sans raison valable. (Vous avez déjà examiné la quantité de données que Facebook envoie? C’est effrayant. Ce n’est pas seulement un problème lié au JS, il en fait partie).

Nous avons également tendance à confier de plus en plus de traitements au client, et si vous utilisez un matériel minimaliste (ou tout simplement obsolète), le processus est terriblement lent.

Ergonomie et accessibilité

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 de ce type d'interfaces. Vous ne pouvez pas plaire à tout le monde, mais vous avez parfois la possibilité et le devoir de satisfaire tous vos utilisateurs.

Enfin, certains utilisateurs ont des handicaps, et tu ne les ignoreras jamais !!!

À mon avis, les pires scénarios sont ceux de sites Web gouvernementaux qui tentent de "moderniser" leurs interfaces utilisateur afin de paraître plus conviviaux pour le 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 / elle est aveugle et que son lecteur d'écran ne supporte pas 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 l'ordinateur portable remis à neuf acheté sur e-bay il y a 2 ans, ou encore parce qu'il / elle retourne dans son pays d'origine pour la semaine de relâche et que les contraintes de bande passante locale ne permettent pas de supporter la charge de la site.

Tout le monde ne vit pas dans un monde parfait.

Support de plate-forme

Ce point concerne les 2 précédents et a tendance à être moins pertinent de nos jours, car les navigateurs incorporent des moteurs JavaScript plus efficaces en ampleur qu’auparavant, ce qui ne cesse de s’améliorer.

Cependant, rien ne garantit 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, réellement - ou d'autres raisons qui peuvent ou non être valides). Comme mentionné par "Matthieu M." Dans les commentaires, vous devez vous rappeler que de nombreuses personnes 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, de nombreux utilisateurs utilisent des téléphones dotés de navigateurs intégrés avec une prise en charge limitée.

Mais, comme je l’ai mentionné, les choses s’améliorent dans ce domaine. Cependant, vous devez toujours vous rappeler des points précédents concernant les limitations de bande passante si vous continuez à interroger très régulièrement (ou vos utilisateurs bénéficieront d’une belle facture téléphonique).

Tout est très lié.

Sécurité

Bien que, de toute évidence, on puisse penser qu’on ne puisse rien faire de particulièrement dangereux avec JavaScript, même s’il fonctionne dans un environnement de navigateur, c’est totalement faux.

Vous réalisez que lorsque vous visitez P.SE et SO, vous êtes automatiquement connecté si vous étiez connecté à un autre réseau, n'est-ce pas? Il y a du JS dedans. Ce bit est toujours inoffensif, mais il utilise des concepts exploitables par certains sites malveillants. Il est tout à fait possible qu'un site Web utilise JavaScript pour rassembler des informations sur certaines choses que vous avez effectuées (ou faites) au cours de votre session de navigation (ou les précédentes si vous n'effacez pas les données de votre session chaque fois que vous quittez votre navigateur ou exécutez la commande now. modes de navigation incognito / privé courants) et les télécharger sur un serveur.

Les vulnérabilités récentes (fonctionnant dans les principaux navigateurs du moment) incluaient la possibilité de rassembler les données de vos formulaires d’entrée sauvegardés (en essayant des combinaisons pour vous sur une page malveillante et en enregistrant les textes suggérés pour chaque combinaison de lettre de départ possible, en indiquant éventuellement aux attaquants qui vous êtes. , où vous travaillez et vivez ) ou pour extraire votre historique de navigation et vos habitudes ( astuce très intelligente faisant quelque chose d'aussi simple que d'injecter des liens dans le DOM de la page pour faire correspondre la couleur du lien et voir s'il a été visité . Il vous suffit de le faire ceci sur une assez grande table de noms de domaines connus, et votre navigateur devenant plus rapide à traiter JavaScript, ce genre 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 si les sites Web que vous visitez ne se protègent pas suffisamment contre les attaques XSS, vous pouvez utiliser JavaScript pour exploiter simplement vos sessions ouvertes sur des sites Web distants.

JavaScript est généralement inoffensif ... si vous l'utilisez pour des sites Web de confiance. Gmail. Facebook (peut-être ... et même pas ...). Google Reader. StackExchange.

Mais oui, javascript ne peut pas être si mauvais, non? Et il y a de toute façon des choses effrayantes à craindre en ligne. C'est comme si vous pensiez être anonyme alors que vous n'êtes pas si nombreux , comme le montre l' expérience de Panopticlick sur le FEP . Ce qui est également en partie fait en utilisant JavaScript. Vous pouvez même lire leurs raisons pour désactiver JavaScript afin d'éviter les empreintes digitales du navigateur .


Cela étant dit, il peut y avoir de bonnes situations dans lesquelles vous n'avez pas besoin de vous préoccuper de la prise en charge de JavaScript. Mais si vous proposez un site Web public, envisagez d'accepter les deux types de clients. Personnellement, je pense qu'un grand nombre d'applications Web et de sites Web modernes fonctionneraient tout aussi bien avec l'ancien modèle de contenu généré par le serveur, sans JavaScript du tout côté client, et ce serait quand même génial et peut-être beaucoup moins consommateur.

Votre kilométrage peut varier en fonction de votre projet.

haylem
la source
5
Facebook, par exemple, est une perte de temps considérable pour votre processeur. J'ai rencontré des sites si mal codés (ou qui semblaient l'être) qu'ils gèlent mon ordinateur en chargeant complètement le processeur (avec quelques autres onglets ouverts).
Marc C
3
@ Mark C: J'envisage de renvoyer jusqu'à 140K en cliquant sur "envoyer" lorsque je tape un commentaire, une utilisation légèrement exagérée des formulaires Web, honnêtement. Cela aurait pu être dans des cas spécifiques à l'époque et qui ont été corrigés depuis (espérons-le). J'ai vécu pendant un court moment dans un pays avec une humble position de censure sur Internet et une qualité de connexion médiocre, ce qui vous permet d'apprécier beaucoup plus les bons vieux sites Web à base de texte!
Hayem
8
+1 pour mentionner l'accessibilité. La moitié de ce maudit site Web est complètement inutilisable pour moi, et je ne suis ni un utilisateur occasionnel ni besoin de faire confiance à JAWS (pour le moment).
Stan Rogers
2
@ Rogers Rogers: cela compte beaucoup pour moi. J'ai eu la chance de travailler avec un type aveugle à l'université, qui était à la fois étudiant et enseignant, et ses capacités m'ont époustouflé. Et je trouve un peu triste que les grandes entreprises et même les établissements d’enseignement proposent maintenant des sites Web artistiques pourris, où ces utilisateurs sont laissés de côté.
Hayem
2
+1 pour l'accessibilité. Je travaille pour un site très lié aux soins de santé. (Heureusement que ce n’est pas le cas le plus épouvantable dans les nouvelles). Malgré tous les avantages que nous offre JS, je suis profondément attristé par nos priorités.
Katana314
46

Parce que faire confiance à quelqu'un pour écrire une bande dessinée amusante tous les matins et faire en sorte que du code Turing-complet complet soit arbitraire sur mon ordinateur sont deux choses très différentes.

Jörg W Mittag
la source
3
+1 pour l'analogie amusante. Bien que le fait que Turing soit complet n’a rien à voir avec la dangerosité de l’exécution.
haylem
4
@haylem: Être Turing-complet signifie qu'il est impossible de prouver mécaniquement la sécurité dans le cas général. Zut, c'est même impossible de prouver des choses basiques comme ça ça ne marche pas éternellement. Pour un langage plus restrictif, il serait possible au navigateur client de prouver que le script ne fait pas quelque chose de dangereux.
Jörg W Mittag
22
Turing-complétude est seulement sur la calculabilité. Cela ne dit rien sur le fait que le langage interprété soit autorisé à ouvrir des fichiers, à faire des requêtes HTTP, etc. Le seul danger inhérent à la complétude Turing est la possibilité d'une boucle infinie.
dan04
@ dan04 Ou qu'il tente d'imiter un processeur x86 exécutant Windows exécutant une application de bureau qui est projetée dans la fenêtre de votre navigateur - le tout en Javascript. L'intégralité de Turing fait peur
sinni800
@ dan04 et maintenant les botnets miniers cryptocoins (qui nécessitent uniquement des ressources de calcul et la possibilité de renvoyer les résultats).
user253751
16

Je ne suis pas un 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 visionnais une page Web fondamentalement statique , telle qu'une page Facebook, l'utilisation de mon processeur augmenterait de 15% environ, voire plus. avec plusieurs onglets. En fin de compte, je devais attendre une réponse après avoir cliqué sur un bouton ou un lien et mon processeur surchaufferait et se bloquerait.

Sur nombre de ces pires délinquants (sites), rien de visible ne change ni d’interactif. Je pouvais seulement supposer que le code du site faisait constamment des mises à jour, des sondages et des boucles sans fin.

Cela m'a amené à installer NoScript afin de libérer mon processeur et d'éviter que la navigation devienne une corvée frustrante.

L'autre complément merveilleux que j'utilise est FlashBlock .

Mark C
la source
Facebook ne fournit pas de pages statiques: il utilise une technique appelée interrogation longue pour rechercher de nouvelles notifications, messages de messagerie instantanée et éléments d'actualités. Toutes ces choses nécessitent JavaScript et une certaine quantité de puissance de calcul.
2
@ MarkTrapp Oui, c'est pourquoi j'ai dit "fondamentalement statique" bien qu'il ne s'agisse pas à proprement parler d'une page statique. HyperPhysics serait un exemple de site avec des pages statiques. Je me rends compte qu'il est probablement nécessaire de faire ce genre de chose, sinon les boîtes ne disparaîtront jamais et vous ne verrez pas de notifications tant que vous n'aurez pas actualisé la page, mais : la situation dans laquelle un professeur ou un enseignant s'attend à ce que vous accordiez la priorité à son travail.
Mark C
Si vous pensez que Facebook est une page statique, vous ne devriez pas commenter cette question.
Dainius
@ Dainius Vous semblez confondre le jargon avec l'anglais et vous ne suivez pas la logique ici. Que fait-il avec tous ces cycles du processeur ici? C'est le problème. Peut-être est-il préférable de le faire maintenant, mais beaucoup de ces sites Web se servent eux-mêmes pour obscéner votre temps CPU.
Mark C
Mark, vous vous appelez webdev et demandez: qu'est-ce que la page statique vs dynamique a à voir avec les cycles de processeur? ou vous pensez vraiment que "voir une page Web fondamentalement statique, telle qu'une page Facebook" est vrai?
Dainius
10

Je désactive JS pour des raisons de vitesse. TechCrunch sans JavaScript prend quelques secondes à charger avec un cache apprêté. Avec JavaScript, cela prend presque 20 secondes, voire plus si le cache n’est pas apprêté.

De nombreux sites sont devenus saturés de JavaScript, notamment des galeries d'images et des sites de commerce. Si vous supprimez ce paramètre, vous améliorez la navigation dans la plupart des cas.

Josh K
la source
8

Pour moi, tout est question de sécurité. J'utilise noscript pour permettre à certains sites Web d'exécuter javascript, tout en refusant la plupart.

En fin de compte, vous ne savez jamais vraiment où est le danger ( site Web nobel infecté sur techspot.com ). De nombreux exploits du jour zéro (et autres) utilisent javascipt; La fermeture de cette avenue d’attaque semble être un pas dans la bonne direction.

Kasterma
la source
1
Vous avez besoin de crochets autour de quelque chose pour que ce lien apparaisse. Cela me rappelle que j'ai appris l'hiver dernier seulement que Yahoo! Les publicités sportives ont été infectées par un type de malware (ou pourraient vous infecter). Le jeune homme qui administrait le réseau domestique où nous étions restait sur la liste noire de nombreux sites contenant des publicités infectieuses.
Mark C
7

Ma raison principale est qu’elle supprime les publicités les plus agaçantes. 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 ou deux sites sur lesquels les conditions de service indiquaient que je ne devais pas désactiver les annonces). NoScript limite le caractère potentiellement désagréable des publicités et je suis prêt à vivre avec le reste d'entre elles.

Il faut également tenir compte de la sécurité, qui est en grande partie liée aux annonces, car tout site vendant des annonces doit être considéré comme potentiellement hostile.

De plus, je ne sais pas nécessairement qu'un site est louche avant de le visiter. Certaines personnes aiment envoyer des liens vers des sites et ne sont pas nécessairement honnêtes.

David Thornley
la source
Les sites de confiance peuvent également inclure des Javascripts nuisibles - via XSS ou parce qu'ils sont piratés. L’exemple du site du prix Nobel vient à l’esprit.
Mnementh
4

Comme les navigateurs utilisaient jadis des implémentations JavaScript lentes et que trop de concepteurs Web de n00b l’utilisaient pour des tâches non pertinentes, telles que le basculement des boutons.

Sur une machine rapide, avec un navigateur moderne, personne ne le désactive tout le temps. Ce qui ne veut pas dire qu’il n’ya pas beaucoup de gens très soucieux de la sécurité et d’autres qui n’ont pas les fonds, le désir ou le savoir-faire nécessaires pour faire fonctionner un navigateur moderne sur un ordinateur rapide ... Ce n’est que récemment que IE6 a cessé de fonctionner. le navigateur le plus populaire sur internet!

Kevin Cantu
la source
"et d'autres sans les fonds, l'envie, ou le savoir-faire d'exécuter un navigateur moderne sur un ordinateur rapide". Je peux comprendre et accepter la partie "fonds". Je peux comprendre avec la partie "désir", bien que je pense que ce serait généralement plus une question de "besoin" en tant que contrainte imposée comme un refus d'avoir un ordinateur décent. Mais je ne comprends pas vraiment le "savoir-faire". Comment pouvez-vous être non qualifié au point de ne pas acheter un ordinateur récent? Ou si vous le faites, en abusant au point de ne pas installer le navigateur fourni et d’utiliser un navigateur plus ancien? :)
haylem
2

Avec Javascript activé, tout site Web peut exécuter du code sur mon ordinateur. Je ne sais même pas si le site Web en question exécute le code et ce qu'il fait. Pire encore, quelqu'un peut insérer du code à mon insu dans un site Web normalement inoffensif (XSS). Récemment, un célèbre magazine informatique allemand n'a pas publié d'article, mais un jeune homme 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 gros - é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.

Mnementh
la source