Non sarò l'avvocato del diavolo, ma non esiste una stretta relazione tra lavoro amatoriale e JavaScript in linea. Vediamo il codice sorgente di diversi siti Web più noti:
- Google,
- Wikipedia,
- Microsoft
- Adobe,
- Dell,
- IBM.
Ciascuna delle loro home page utilizza JavaScript in linea. Significa che tutte queste società assumono persone amatoriali per creare le loro home page?
Sono uno di quegli sviluppatori che non possono inserire il codice JavaScript all'interno dell'HTML. Non lo faccio mai nei progetti su cui lavoro (ad eccezione probabilmente di alcune chiamate come <a href="javascript:...">
per i progetti in cui JavaScript non invadente non era un requisito fin dall'inizio e rimuovo sempre JavaScript inline quando rifatto il codice di qualcun altro. vale la pena? Non sono così sicuro.
Per quanto riguarda le prestazioni, non hai sempre prestazioni migliori quando inserisci JavaScript in un file separato. Di solito, siamo tentati di considerare che la larghezza di banda sprecata in linea JavaScript, dal momento che non può essere memorizzata nella cache (eccetto quando si ha a che fare con l'HTML in cache statico). Al contrario, un file .js extern viene caricato una sola volta.
In realtà, questa è solo un'altra ottimizzazione prematura : potresti avere ragione nel ritenere che esternalizzare JavaScript possa bloccare il tuo sito web, ma potresti anche essere totalmente sbagliato:
- Cosa succede se la maggior parte dei tuoi utenti ha una cache vuota?
- L'hai considerato con un file .js extern, verrà richiesta una richiesta a questo file ad ogni richiesta di pagina, se il sito web non è configurato correttamente (e di solito non lo è),
- Il file .js è realmente memorizzato nella cache (con IIS, potrebbe non essere così semplice)?
Quindi, prima di ottimizzare prematuramente, raccogli statistiche sui tuoi visitatori e valuta le prestazioni con e senza JavaScript inline.
Poi arriva l'argomento finale: hai mescolato JavaScript e HTML nella tua fonte, quindi fai schifo. Ma chi ha detto che hai mescolato entrambi? Il codice sorgente utilizzato dal browser non è sempre il codice sorgente che hai scritto. Ad esempio, il codice sorgente può essere compresso, minimizzato, o più file CSS o JS possono essere uniti in un unico file, ma questo non significa che hai davvero chiamato le tue variabili a
, b
, c
... a1
, ecc. o che hai scritto un enorme file CSS senza spazi o newline. Allo stesso modo, puoi facilmente avere codice sorgente JavaScript esterno iniettato in HTML in fase di compilazione o successiva tramite i modelli.
Per concludere, se mischi JavaScript e HTML nel codice sorgente che scrivi, dovresti considerare di non farlo nei tuoi progetti futuri. Ma ciò non significa che se il codice sorgente inviato al browser contiene JavaScript inline, è sempre male.
- Potrebbe essere cattivo.
- All'opposto potrebbe essere il segnale che il sito Web è stato scritto da professionisti che si sono preoccupati delle prestazioni, hanno effettuato test specifici e hanno determinato che sarebbe stato più veloce per i loro clienti integrare parti di JavaScript.
- Oppure potrebbe non significare nulla.
quindi piuttosto vergogna per la persona che dice "sito molto interessante, vergogna per lo scripting inline nel codice sorgente" guardando solo la fonte inviata al browser, senza sapere nulla su come è stato fatto il sito.