Sono uno sviluppatore web da quasi 10 anni e ho preso l'abitudine di provare a non usare JavaScript ogni volta che è possibile. Non sto parlando di costruire app Web qui, ma siti Web basati su database.
È un approccio buono / rispettato?
Sono uno sviluppatore web da quasi 10 anni e ho preso l'abitudine di provare a non usare JavaScript ogni volta che è possibile. Non sto parlando di costruire app Web qui, ma siti Web basati su database.
È un approccio buono / rispettato?
Risposte:
È l'istinto della maggior parte dei programmatori di ridurre tutti i tipi di codice. Meno codice, meno complessità e meno punti di possibile errore in detto codice. Questa regola si applica a Javascript così come ad altre lingue. Stai solo sostenendo la tradizione.
Usa Javascript come necessario / desiderato nelle pagine HTML ... ma non c'è motivo di usarlo quando non è effettivamente necessario.
10 anni fa, potrebbe essere stata una buona idea. Oggi la maggior parte delle parti di Internet (- almeno alcune parti molto popolari -) sono diventate quasi inutilizzabili, o forniscono solo una funzionalità molto limitata, quando si disabilita Javascript nel browser. Quindi IMHO oggi puoi aspettarti che Javascript sia abilitato per i tuoi utenti.
E ci sono molti framework come JQuery per aggirare le incompatibilità del browser. IMHO non esiste un vero motivo per cui dovresti limitarti a non utilizzare Javascript per il tuo sito Web - l'unico motivo potrebbe essere che non hai alcun uso per esso.
EDIT: una domanda diversa è: se dovresti fornire alcune funzionalità minime del tuo sito web quando i tuoi visitatori non hanno abilitato JS - questa è principalmente una buona idea, per i motivi che alcuni commentatori hanno sottolineato.
EDIT2: sicuramente per ogni sito Web, si deve trovare un equilibrio tra facilità d'uso, facilità di ricerca e sviluppo. IMHO oggi Javascript può aiutare a migliorare questo equilibrio, se usato con saggezza. Detto questo, penso che non sia più necessario minimizzare oggi l'utilizzo di Javascript per mantenere questo equilibrio. Usalo con cura e non demonizzarlo.
Avere un sito che può essere utilizzato senza JavaScript significa che è disponibile per il pubblico più vasto possibile. Sebbene sia vero che la maggior parte dei browser supporta JavaScript e la maggior parte degli utenti lo lascia attivo per impostazione predefinita, non puoi contare su questo di sicuro. Dopo tutto, non tutto ciò che accede al tuo sito è un browser; se desideri che il tuo sito sia correttamente indicizzato dai motori di ricerca come Google, GoogleBot deve essere in grado di navigare nel tuo sito senza JavaScript.
Esistono anche software specializzati per la navigazione web in cui JavaScript non è disponibile o non funziona come previsto. Software di lettura dello schermo o Braille utilizzato dai non vedenti, ad esempio. Ci sono anche ambienti in cui la memoria è limitata e avere grandi quantità di javascript può rendere l'esperienza di navigazione spiacevole o addirittura poco pratica, come i browser degli smartphone.
Dovresti esaminare il concetto di "miglioramento progressivo", in cui costruisci un sito per funzionare senza javascript, quindi aggiungi un livello javascript in cima per migliorare l'esperienza dell'utente. In questo modo avrai un sito almeno utilizzabile da persone senza javascript.
Non devi cercare di fornire tutte le possibili funzionalità che stai pianificando di implementare con browser JavaScript per browser non JavaScript, ma è comunque importante lasciare almeno i casi d'uso di base disponibili senza JavaScript. Essere in grado di navigare nel sito è ovviamente in cima alla lista, ma se stai costruendo un sito di e-commerce, rendere il processo di pagamento dipendente da JavaScript sarebbe sciocco in quanto potrebbe costarti le vendite.
Le altre risposte sembrano concentrarsi su "se non dovessi mai usare JavaScript", quindi penso che manchino il punto. Non dovresti usare JavaScript se non ti serve. Alcune persone usano JavaScript per tutto :
href
quando ragionevole)I vantaggi sono cose come:
href
collegamenti di backup aiuta i motori di ricerca, gli utenti che vogliono aprire collegamenti in altre schede e gli utenti che odiano JavaScriptNaturalmente, AJAX è piuttosto interessante, così come le pagine dinamiche, quindi non buttare via quelle cose solo perché alcune persone non ne hanno bisogno.
Il mio punto è che imparare a fare le cose senza JavaScript è buono, minimizzare JavaScript è buono e avere un backup per quando JavaScript non funziona è buono, ma non c'è motivo di evitare funzionalità perché richiedono JavaScript.
È una buona idea evitare funzionalità non necessarie, punto. Frame come jQuery rendono incredibilmente facile aggiungere fronzoli che potrebbero avere senso aggiungere, ma a volte no. Per esempio:
Hai davvero bisogno di animarlo?
... o ...
Attraversare l'intero DOM è davvero necessario per un selettore così banale? Potresti limitarlo usando il contesto, e ne abbiamo bisogno in primo luogo?
Non eviterei di usare JS, ma faccio attenzione a non essere odioso, mentre cerco macchine più lente. Lo stesso vale con alcune delle nuove fantasiose cose che otteniamo in CSS3 - come le ombre discendenti ... se usate in modo eccessivo possono rendere qualcuno su una macchina a bassa potenza un'esperienza davvero negativa.
L'eccezione a questo potrebbe essere la scrittura di controlli front-end per vari tipi di dispositivi, in cui devono assolutamente funzionare con JS disabilitato (forse una rigida politica di sicurezza su una rete di gestione del data center non impone alcun JS). Quindi quanto sopra dovrebbe essere preso in considerazione con qualsiasi requisito tu abbia.
Credo che essendo uno sviluppatore web relativamente nuovo e giovane (circa 4 anni), ho dovuto fare molte ricerche su questo dato che JavaScript è ovunque.
Quello che cerco di fare nei miei progetti è assicurarmi che il sito funzioni senza javascript, quindi aggiungere javascript dove ha senso (convalida lato client, miglioramento dell'interfaccia utente, ecc.). È una sorta di miglioramento progressivo e si occupa di SEO, javascript disabilitato e incompatibilità dei browser precedenti.
La stessa domanda è stata posta su SO, ma non riesco a ricordare per amor mio dove.
L'utilizzo di JavaScript può essere limitato in diversi casi:
JS ha un sacco di funzioni, che non possono essere sostituite dal codice lato server. A parte quelli sopra, non credo che ci sarebbero argomenti ragionevoli per limitare l'utilizzo di JS.
" Siti web basati su database " è la chiave della risposta. Esistono due modi per creare siti Web e la quantità di Javascript consentita dipende da quale si sta utilizzando, in realtà. Puoi costruire:
Siti Web incentrati sul contenuto . Nel primo caso, le parole magiche sono "miglioramento progressivo"; limitare javascript a funzioni ridondanti che possono essere fornite con accessi classici al contenuto tramite HTTP semplice.
Applicazioni Web . Per le applicazioni, invece, stai utilizzando il Web come piattaforma software. Le app si basano su alcune ipotesi sul software disponibile: browser moderni, ultime versioni delle librerie javascript più diffuse, accessi al desktop con mouse e / o tablet con multi-touch.
I requisiti minimi di accesso sono OK se stai davvero creando un'applicazione: scegli come target una piattaforma specifica per ottenere funzionalità avanzate che altrimenti non potrebbero essere costruite. È proprio come sviluppare per Python o Java o .Net. Non lasciarti ingannare da parole d'ordine come HTML5 e dalla promessa di "correre ovunque"; puoi avere un codice portatile tra i dispositivi solo fintanto che l'intera piattaforma è supportata su quelli. Qualsiasi modifica allo stack di sviluppo e il software si interromperanno.
Quindi il prezzo da pagare è che stai seguendo un obiettivo mobile, poiché vengono rilasciate nuove versioni della piattaforma; dovrai giocare per recuperare il tempo per far funzionare la tua app mentre la piattaforma si evolve. L'unico vantaggio che ottieni è un meccanismo di consegna semi-universale per la tua app che non dipende da pacchetti o negozi di applicazioni; ma perdi la funzione principale che differenzia il web dai precedenti sistemi di computer in rete.
I siti Web incentrati sui contenuti sono una bestia diversa; sono nella tradizione del classico World Wide Web. Il contenuto viene interpretato liberamente dal cliente, che può effettuare qualsiasi trasformazione desiderata prima della presentazione. Il sito dovrebbe avere accesso a un ecosistema di piattaforme diverse che possono o meno supportare gli standard attuali:
Li perderai tutti se hai bisogno dell'attuale razza di javascript, che è in continua evoluzione. In questo contesto, javascript non funzionante che impedisce l'accesso al contenuto è un peccato.
Tutti affermano che "l'utilizzo di javascript dovrebbe essere ridotto al minimo" sostiene questo stile. Va bene includere alcuni JS, intendiamoci, ma tutte le funzioni dovrebbero essere ridondanti con accessi di base al contenuto che potrebbe essere ottenuto sul lato server:
Il vantaggio di questo approccio sono meno test e upgrade richiesti e maggiore durata. Le prime pagine Web statiche di 20 anni fa sono ancora sfogliabili in qualsiasi client Web, ma le prime applicazioni Web sono interrotte per sempre. Se il tuo sito ha qualche valore di archiviazione, trarrai vantaggio a lungo termine dall'uso del Web come sistema di distribuzione dei contenuti, non di piattaforma applicativa.
Lavoro per il mio governo statale e, di conseguenza, la maggior parte del mio sviluppo coinvolge siti Web interattivi basati sui dati. Interrogazioni su dati storici, invii di moduli, cose del genere. Manteniamo il nostro Javascript al minimo assoluto, per i seguenti motivi:
1) La convalida degli input del modulo dovrebbe sempre avvenire sul lato server, mai sul lato client. Se tenti di convalidare i tuoi input sul lato client, tutto ciò che un hacker deve fare è creare una copia locale della tua pagina web e riscrivere Javascript per consentire ciò che desidera inviarti (iniezione SQL, ecc.). La convalida deve essere eseguita da qualche parte sotto il tuo controllo esclusivo, ovvero sul server.
2) Molti utenti disattivano Javascript o utilizzano un browser che potrebbe non implementarlo correttamente. Essendo il governo, dobbiamo supportare tutti, anche se stanno usando attrezzature davvero VERAMENTE vecchie. HTML funziona ovunque; Javascript, non così tanto. Non usando Javascript nelle tue pagine web, dai loro un ingombro davvero ridotto sul computer client, usando poche risorse. Ciò massimizza il numero di persone che possono accedere ai tuoi contenuti. Per lo stesso motivo, non dovresti diventare troppo pazzo con il tuo CSS. Mantieni la semplicità, mantienila pulita e lascia che le piccole signore anziane vedano il tuo sito anche se il loro computer è stato acquistato nel 1999 (per inciso, riceviamo chiamate di supporto tecnico da persone come questa).
3) Javascript, essendo uno strumento preferito dagli "sviluppatori web" piuttosto che dai programmatori lato server, tende ad essere piuttosto brutto. E i designer (che di solito sono gli sviluppatori web, se vuoi essere sincero a riguardo) tendono a non vedere il problema con il download di "script" da luoghi casuali sul web. Dicono cose come "perché reinventare la ruota?" e "Non inventato qui". Quindi, invece di scrivere il proprio codice, spesso escono e prendono qualcosa da un altro sito, pensando che se è su Internet è un gioco equo. Ci sono due problemi con questo: A) potrebbero inavvertitamente pubblicare JavaScript dannoso che impiega un po 'di tempo a catturare, e B) potrebbero infrangere il copyright di qualcuno e farti denunciare. Entrambe le situazioni devono essere evitate.
IN GENERALE, Javascript è una cattiva idea. Il codice lato client di QUALSIASI tipo è una cattiva idea. Il lato client deve contenere solo linguaggio di markup e CSS; lasciare che il lato server gestisca il sollevamento pesante.
Dipende.
Mentre ci si può aspettare che gli user agent desktop supportino ed eseguano il tuo javascript in modo significativo, non tutti gli user agent sono browser desktop grafici e devi decidere se desideri soddisfarli.
Esempi inclusi:
La mia regola empirica è che se si tratta di un'applicazione web per utenti regolari (interni, di comunità, quel genere di cose), fare affidamento su JavaScript è OK, ma se si desidera essere accessibili e reperibili pubblicamente, almeno il vitale la funzionalità dovrebbe funzionare in modo impeccabile senza javascript e dovresti fallire con grazia quando ne hai bisogno, piuttosto che mostrare un comportamento "indefinito".
L'approccio vecchio stile è totalmente obsoleto. Ad esempio, ho fatto una cancellazione ajax per il moderatore su uno dei siti ed è solo felice per l'ovvio aumento di velocità.
Naturalmente lo sviluppatore può fare due versioni sia per utenti JS che non JS, ma nella maggior parte dei casi è estremamente costoso e non vale l'1-2% del pubblico del sito Web (se non sei Google, ovviamente).
Quindi la mia risposta sarebbe NO - JavaScript è la risposta a molte domande sull'esperienza utente, perché non dovrei usarlo?
Dalla mia esperienza c'è stato un momento in cui le aziende disabilitano JavaScript per politica. Ma questa volta è andato molto lontano. Attualmente ho creato alcune grandi applicazioni intranet e applicazioni web per le più grandi aziende globali. Per tutte le applicazioni, l'uso di JavaScript e JQuery faceva parte delle cose che il cliente si aspetta.
Costruire applicazioni per i clienti non è più solo velocità e sicurezza. Il cliente desidera concentrarsi sull'usabilità e sull'uso della tecnologia AJAX. Senza l'uso di JavaScript non funzionerebbe così bene. PostBack sempre per alcune attività molto piccole come il calcolo o qualcosa del genere non è un'opzione per la maggior parte delle aziende.
Quando pensiamo alle situazioni attuali nelle aziende più grandi, c'è un altro indicatore del motivo per cui JavaScript è attualmente un must. Guarda i sistemi CMS che sono attualmente in esecuzione nel mondo degli affari. La maggior parte utilizza Microsoft SharePoint o Adobe CQ, alcuni Drupal o altri e così via. Tutti questi sistemi si basano su JavaScript. Senza javascript la maggior parte dell'applicazione non funzionerebbe, come previsto dall'utente.
In passato JavaScript veniva utilizzato e abusato e gli script erano (percepiti come) pieni di vulnerabilità e una fonte di malware.
Molte reti aziendali hanno risposto disabilitando JS, una politica che (giustamente o erroneamente) esiste ancora in molte organizzazioni oggi.
Molto semplicemente, suggerisco che nessun sito dovrebbe fare affidamento su JS per operare
Come la maggior parte delle risposte qui spiegano, l'uso javascript
non è dannoso. Se vuoi salvare la tua codifica e il codice sorgente dall'aspetto disordinato, prova coffee-script
a risparmiare molto sforzo nella digitazione javascript
.