Perché le persone disabilitano JavaScript?


59

Ho fatto una domanda ieri Dovrei preoccuparmi di sviluppare per JavaScript disabilitato? . Penso che il consencus sia: Sì, dovrei sviluppare per JavaScript disabilitato. Ora voglio solo capire perché gli utenti disabilitano JS. Sembra che molti sviluppatori (immagino che le persone che hanno risposto alle domande siano sviluppatori) disabilitino JS. Perché. Perché gli utenti disabilitano JS? Per sicurezza? Velocità? o cosa?


9
Penso che stai facendo ipotesi basate su prove aneddotiche. Il fatto è che il 99,7% degli utenti non disattiva JS. In effetti, se davvero avessero spento JS, non avrebbero risposto alla domanda qui, perché questo sito non funziona senza JS.
vartec,

2
Non conosco nessuno che lo sappia.
kirk.burleson,

6
@varted, @kirk: conosco molte persone che lo fanno, o almeno in parte. Molte persone attente alla sicurezza consentiranno JavaScript solo sui siti che inseriscono nella whitelist, ad esempio. E conosco molto chi disabilita JS sul proprio smartphone in quanto spesso vale la batteria che scarica.
haylem,

1
Ho javascript disabilitato in Chrome per impostazione predefinita, per motivi di sicurezza, anche se lo abilito per i siti Web che ne valgono la pena. Non mi piace il fatto che così tanti siti Web non funzionino senza javascript, ce ne sono sempre di più che non funzionano affatto.
Czarek Tomczak,

2
@HannesKarppila Possono ancora utilizzare i cookie tra domini e le immagini di tracciamento dei bug web ecc. Gli utenti di tracciamento funzionano bene a meno che non disabilitino javascript e cookie, nel qual caso Internet è piuttosto inutilizzabile.
NickG,

Risposte:


80

Uno disabilita JavaScript in un ambiente browser a causa delle seguenti considerazioni:

  • Velocità e larghezza di banda
  • Usabilità e accessibilità
  • Supporto della piattaforma
  • Sicurezza

Velocità e larghezza di banda

Molte applicazioni usano troppo JavaScript per il loro bene ... Hai bisogno che parti della tua interfaccia siano sempre aggiornate dalle chiamate AJAX? Forse la tua interfaccia è fantastica e veloce se utilizzata con una connessione a banda larga, ma quando devi effettuare il downgrade a velocità di connessione più lente, è preferibile un'interfaccia più snella. E disattivare JavaScript è un buon modo per impedire alle app web stupide di rinfrescare il mondo ogni 15 secondi circa senza motivo. (Hai mai visto la quantità di dati inviati da Facebook? Fa paura. Non è solo un problema relativo a JS, ma ne fa parte).

Tendiamo anche a scaricare sempre più elaborazione sul client e, se si utilizza hardware minimalista (o appena obsoleto), è dolorosamente lento.

Usabilità e accessibilità

Non tutte le interfacce utente dovrebbero essere espresse in modo dinamico e il contenuto generato dal server potrebbe essere perfettamente accettabile in molti casi. Inoltre, alcune persone semplicemente non vogliono questo tipo di interfacce. Non puoi piacere a tutti, ma a volte hai la possibilità e il dovere di soddisfare tutti i tuoi utenti.

Infine, alcuni utenti hanno disabilità e non li ignorerai mai !!!

Gli scenari peggiori qui, a mio avviso, sono i siti Web del governo che cercano di "modernizzare" le loro interfacce utente per apparire più amichevoli per il pubblico, ma finiscono per lasciarsi dietro un grosso pezzo del pubblico previsto. Allo stesso modo, è un peccato quando uno studente universitario non può accedere al contenuto del suo corso: perché è cieco e il suo screen reader non supporta il sito o perché il sito è così pesante e richiede plug-in moderni ad hoc che non riesce a installarlo su quel laptop rinnovato acquistato su e-bay 2 anni fa, o di nuovo perché torna a casa in un altro paese per le vacanze di primavera e i vincoli di larghezza di banda locali non possono far fronte al carico utile del posto.

Non tutti vivono in un mondo perfetto.

Supporto della piattaforma

Questo punto si riferisce ai 2 precedenti e tende ad essere meno rilevante al giorno d'oggi, poiché i browser incorporano motori JavaScript con un livello di grandezza più efficiente di prima, e questo continua a migliorare.

Tuttavia, non esiste alcuna garanzia che tutti i tuoi utenti abbiano il privilegio di utilizzare i browser moderni (o a causa di vincoli aziendali - che ci costringono a supportare i browser antidiluviani senza una buona ragione, davvero - o altri motivi che potrebbero essere o non essere validi). Come menzionato da "Matthieu M." nei commenti, è necessario ricordare che molte persone usano ancora hardware di qualità inferiore e che non tutti usano lo smartphone più recente e più interessante. Ad oggi, c'è ancora una parte significativa di persone che usano telefoni con browser integrati con supporto limitato.

Ma, come ho già detto, le cose vanno meglio in questo settore. Ma allora devi ancora ricordare i punti precedenti sulle limitazioni della larghezza di banda se continui a eseguire il polling molto regolarmente (o i tuoi utenti godranno di una bella bolletta telefonica).

È tutto molto correlato.

Sicurezza

Mentre ovviamente potresti pensare che nulla di particolarmente pericoloso possa essere fatto con JavaScript considerando che funziona in un ambiente browser, questo è totalmente falso.

Ti rendi conto che quando visiti P.SE e SO, accedi automaticamente se eri connesso su qualsiasi altra rete, giusto? C'è un po 'di JS lì dentro. Quel bit è comunque innocuo, ma utilizza alcuni concetti che possono essere sfruttati da alcuni siti malevoli. È completamente possibile che un sito Web utilizzi JavaScript per raccogliere informazioni su alcune cose che fai (o hai fatto) durante la sessione di navigazione (o su quelle precedenti se non cancelli i dati della sessione ogni volta che esci dal browser o esegui ora comuni modalità di navigazione in incognito / privato) e quindi caricarle su un server.

Le vulnerabilità recenti (all'epoca funzionanti nei principali browser) includevano la possibilità di raccogliere i dati dei moduli di input salvati (provando combinazioni per te su una pagina malevola e registrando i testi suggeriti per ogni possibile combinazione di lettere iniziali, eventualmente dicendo agli aggressori chi sei , dove lavori e vivi ) o per estrarre la cronologia e le abitudini di navigazione ( un trucco molto intelligente che fa qualcosa di semplice come iniettare collegamenti nel DOM della pagina per abbinare il colore del collegamento e vedere se è stato visitato . Devi solo fare questo su una tabella abbastanza grande di nomi di dominio noti. E il tuo browser sta diventando più veloce nell'elaborazione di JavaScript, questo tipo di cose viene fatto rapidamente.)

Inoltre, non dimentichiamo che se il modello di sicurezza del tuo browser è difettoso o i siti web che visiti non si proteggono abbastanza dagli attacchi XSS, allora potresti usare JavaScript per accedere semplicemente alle tue sessioni aperte su siti Web remoti.

JavaScript è per lo più innocuo ... se lo usi per siti Web affidabili. Gmail. Facebook (forse ... e nemmeno ...). Lettore Google. StackExchange.

Ma sì certo, JavaScript non può essere così male, giusto? E ci sono comunque cose più spaventose da temere online. Come pensare di essere anonimo quando non sei così tanto , come dimostrato dall'esperimento Panopticlick del FEP . Che è anche parzialmente fatto usando JavaScript. Puoi persino leggere i loro motivi per disabilitare JavaScript per evitare l'impronta digitale del browser .


Detto questo, potrebbero esserci situazioni perfettamente buone in cui non è necessario preoccuparsi di supportare JavaScript. Ma se offri un sito Web di servizio pubblico, considera di accettare entrambi i tipi di client. Personalmente, penso che molte app e siti Web moderni funzionerebbero altrettanto bene usando il precedente modello di contenuto generato dal server senza JavaScript sul lato client, e sarebbe comunque ottimo e probabilmente molto meno consumato.

Il chilometraggio può variare in base al progetto.


5
Facebook, ad esempio, è un ottimo drenaggio per la tua CPU. Mi sono imbattuto in alcuni siti che erano così poco codificati (o sembravano essere), che avrebbero praticamente congelato il mio computer caricando completamente la CPU (con alcune altre schede aperte).
Marco C

3
@Mark C: prendo in considerazione l'invio di ben 140K per aver cliccato su "invia" quando scrivo un commento un uso leggermente esagerato dei moduli web, onestamente. Potrebbe essere stato in casi specifici al momento e che sono stati risolti da allora (si spera). Ho vissuto per un breve periodo in un paese con una posizione restrittiva sulla censura di Internet e una qualità di connessione non eccezionale, e questo ti fa apprezzare molto di più i vecchi siti Web testuali!
Hayylem,

8
+1 per menzionare l'accessibilità. Metà di quella maledetta rete è completamente inutilizzabile per me e non sono né un utente di computer occasionale né ho bisogno di fare affidamento su JAWS (ancora).
Stan Rogers,

2
@Stan Rogers: per me conta molto. Ho avuto la possibilità di lavorare con un cieco all'università, che era sia studente che insegnante, e sono rimasto sbalordito dalle sue capacità. E trovo piuttosto triste che le grandi aziende e persino le istituzioni educative ora escano con siti web artistici scadenti in cui questi utenti vengono esclusi.
Hayylem,

2
+1 per l'accessibilità. Lavoro per un sito fortemente legato all'assistenza sanitaria. (Per fortuna non quello terrificante nelle notizie) Tanto beneficio quanto JS ci dà, sono molto rattristato per le nostre priorità.
Katana314,

46

Perché fidarsi di qualcuno per scrivere un divertente fumetto ogni mattina e fidarsi di qualcuno per eseguire arbitrariamente codice completo di Turing sul mio computer sono due cose molto diverse.


3
+1 per l'analogia divertente. Sebbene il fatto che sia Turing completo non ha * nulla a che fare con la pericolosità dell'esecuzione.
Hayylem,

4
@haylem: Essere Turing completo significa che è impossibile dimostrarsi meccanicamente sicuri nel caso generale. Cavolo, è persino impossibile provare cose di base come quelle che non durano per sempre. Per un linguaggio più restrittivo, sarebbe possibile per il browser client provare che lo script non sta facendo qualcosa di pericoloso.
Jörg W Mittag,

22
La completezza di Turing riguarda solo la calcolabilità. Non dice nulla sul fatto che al linguaggio interpretato sia consentito aprire file, fare richieste HTTP, ecc. L'unico pericolo inerente alla completezza di Turing è la possibilità di un ciclo infinito.
dan04,

@ dan04 O che tenta di emulare un processore x86 con Windows che esegue un'applicazione Desktop che viene proiettata nella finestra del browser, il tutto in Javascript. La completezza di Turing è spaventosa
sinni800

@ dan04 e ora le botnet di mining criptocoin (che richiedono solo risorse di calcolo e la possibilità di inviare risultati).
user253751

16

Non sono uno sviluppatore web e ho solo una moderata comprensione del modo in cui funziona Internet. Quindi questa è una risposta di un utente .

La mia esperienza mi porta a credere che molti siti siano semplicemente scarsamente codificati, sia per pigrizia che per ignoranza: quando visualizzerei una pagina Web sostanzialmente statica , come una pagina Facebook, il mio utilizzo della CPU aumenterebbe di qualcosa come il 15% e drasticamente di più con più schede. Alla fine è arrivato al punto in cui avrei dovuto attendere una risposta dopo aver fatto clic su un pulsante o un collegamento e la mia CPU si sarebbe surriscaldata e bloccata.

Su molti di questi peggiori trasgressori (siti), nulla di visibile sta cambiando e nulla di interattivo sta accadendo. Potevo solo supporre che il codice del sito facesse costantemente aggiornamenti eccessivi, sondaggi e loop infiniti.

Questo mi ha spinto a installare NoScript per liberare l'utilizzo della CPU e impedire che la navigazione diventasse un compito frustrante.

L'altro meraviglioso componente aggiuntivo che utilizzo è FlashBlock .


Facebook non fornisce pagine statiche: utilizza una tecnica chiamata polling lungo per verificare la presenza di nuove notifiche, messaggi di messaggistica istantanea e notizie. Tutte queste cose richiedono JavaScript e una certa quantità di potenza della CPU.

2
@MarkTrapp Sì, è per questo che ho detto "fondamentalmente statico" anche se non sta parlando strettamente di una pagina statica. HyperPhysics sarebbe un esempio di un sito con pagine statiche. Mi rendo conto che probabilmente c'è bisogno di fare quel genere di cose, altrimenti le caselle non sparirebbero mai e non vedresti le notifiche fino a quando non aggiorni la pagina, ma : sembra che ogni sito si aiuti a più delle tue risorse di quanto dovrebbe, simile a la situazione in cui un professore o un insegnante si aspetta che tu metta al primo posto il proprio lavoro.
Segna C il

se pensi che Facebook sia una pagina statica, non dovresti commentare questa domanda.
Dainius,

@Dainius Sembra che tu stia confondendo il gergo con l'inglese, e qui non stai seguendo la logica. Cosa sta facendo con tutti quei cicli CPU qui? Quello è il problema. Forse è meglio ora, ma molti di questi siti Web si aiutano a oscurare quantità di tempo della CPU.
Segna C

Mark, ti ​​chiami webdev e chiedi, cosa c'entra la pagina statica vs dinamica con i cicli della cpu? o pensi davvero che "visualizzare una pagina web sostanzialmente statica, come una pagina Facebook" sia vera?
Dainius

10

Disattivo JS per motivi di velocità. TechCrunch senza JavaScript richiede alcuni secondi per essere caricato con una cache innescata. Con JavaScript ci vogliono quasi 20 secondi, più se la cache non è adescata.

Molti siti si sono gonfiati di JavaScript, in particolare gallerie di immagini e siti commerciali. La rimozione di questo ti offre una migliore esperienza di navigazione nella maggior parte dei casi.


8

Per me tutto sulla sicurezza. Uso noscript per consentire a determinati siti Web di eseguire javascript, mentre non lo autorizzo più.

Alla fine non si sa mai dove si trova il pericolo ( sito web nobel infetto su techspot.com ). Molti exploit zero-day (e altri) usano javascipt; chiudere questa strada d'attacco sembra un passo nella giusta direzione.


1
Hai bisogno di parentesi attorno a qualcosa perché quel link entri in gioco. Questo mi ricorda che ho imparato solo lo scorso inverno che Yahoo! Gli annunci sportivi erano infettati da un qualche tipo di malware (o ti infettavano). Il giovane che amministrava la rete domestica in cui alloggiavamo nella lista nera numerosi siti con pubblicità contagiose.
Marco C

7

La mia ragione principale è che sopprime le pubblicità più fastidiose. Preferirei non utilizzare AdBlock Plus, poiché ciò può influire sulle entrate per i siti che visito (e ho usato un sito o due in cui i termini di servizio dicevano che non avrei dovuto disabilitare gli annunci). NoScript limita la potenziale odiosità delle pubblicità e sono disposto a convivere con le altre.

C'è anche la considerazione della sicurezza, e ciò è in gran parte correlato anche agli annunci, poiché qualsiasi sito che vende annunci deve essere considerato potenzialmente ostile.

Inoltre, non so necessariamente che un sito sia pericoloso prima di visitarlo. Ad alcune persone piace inviare link a siti e non sono necessariamente onesti.


Anche i siti attendibili possono includere Javascripts dannosi - tramite XSS o perché sono stati hackerati. Viene in mente l'esempio del sito premio Nobel.
Mnementh

4

Perché i browser avevano implementazioni JavaScript lente e troppi web designer n00b lo usavano solo per cose irrilevanti come il rollover dei pulsanti.

Su una macchina veloce, con un browser moderno, nessuno nella sua mente giusta lo disabilita continuamente. Il che non vuol dire che non ci sono molte persone molto "sensibili alla sicurezza" e altri senza i fondi, il desiderio o il know-how per eseguire un browser moderno su un computer veloce ... È stato solo di recente che IE6 ha smesso di essere il browser più popolare su Internet!


"e altri senza i fondi, il desiderio o il know-how per eseguire un browser moderno su un computer veloce". Sono in grado di comprendere e concordare con la parte "fondi". Posso capire con la parte del "desiderio", anche se penso che di solito sarebbe più una questione di "bisogno" come un vincolo imposto che un rifiuto di avere un computer decente. Ma non capisco davvero la parte del "know-how". Come puoi non essere qualificato fino al punto di non acquistare un computer recente? O se lo fai, di abusarne al punto da non installare il browser in bundle e utilizzarne uno precedente? :)
haylem,

2

Con Javascript attivato, qualsiasi sito Web può eseguire il codice sul mio computer. Non so nemmeno se il sito Web specifico esegue il codice e cosa fa. Ancora peggio, qualcun altro può inserire il codice a mia insaputa in un sito Web normalmente innocuo (XSS). Recentemente una nota rivista di computer tedesca non ha pubblicato un articolo, mentre un sedicenne ha provato i siti di online banking delle banche più comuni in Germania. Molti di loro - incluso il più grande - erano vulnerabili a XSS. E non ti accorgi nemmeno che il tuo sito di online banking esegue alcuni Javascript che cambiano ad esempio l'obiettivo e l'importo di una transazione. Con Javascript disabilitato l'attacco XSS nel contesto di un sito attendibile è inutile, non eseguo il codice dannoso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.