Non sarò il difensore del diavolo, ma non esiste una relazione stretta tra lavoro amatoriale e JavaScript incorporato. Vediamo il codice sorgente di diversi siti Web più noti:
- Google,
- Wikipedia,
- Microsoft,
- Adobe,
- Dell,
- IBM.
Ogni loro home page utilizza JavaScript incorporato. Significa che tutte quelle aziende assumono persone amatoriali per creare le loro home page?
Sono uno di quegli sviluppatori che non riescono a inserire il codice JavaScript all'interno di HTML. Non lo faccio mai all'interno dei progetti su cui lavoro (tranne probabilmente alcune chiamate come <a href="javascript:...">
per i progetti in cui JavaScript discreto non era un requisito dall'inizio, e rimuovo sempre JavaScript incorporato quando refactoring il codice di qualcun altro. Ma ne vale la pena ? Non così sicuro.
Per quanto riguarda le prestazioni, non sempre si ottengono prestazioni migliori quando si inserisce JavaScript in un file separato. Di solito, siamo tentati di considerare che la larghezza di banda dei rifiuti JavaScript incorporata, dal momento che non può essere memorizzata nella cache (tranne quando si tratta di HTML statico memorizzabile nella cache). Al contrario, un file .js esterno viene caricato solo una volta.
In realtà, questa è solo un'altra ottimizzazione prematura : potresti avere ragione pensando che esternalizzare JavaScript renderebbe sicuro il tuo sito web, ma potresti anche sbagliarti totalmente:
- Cosa succede se la maggior parte dei tuoi utenti arriva con una cache vuota?
- Hai considerato che con un file .js esterno, verrà fatta 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 è davvero memorizzato nella cache (con IIS, potrebbe non essere così semplice)?
Quindi, prima di ottimizzare prematuramente, raccogliere statistiche sui visitatori e valutare le prestazioni con e senza JavaScript incorporato.
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, ridotte di, o più file CSS o JS può essere unito in un unico file, ma questo non significa che si ha realmente chiamato il vostro variabili a
, b
, c
... a1
, ecc, o che hai scritto un enorme file CSS senza spazi o newline. Allo stesso modo, puoi facilmente inserire codice HTML esterno in HTML in fase di compilazione o successivamente attraverso i modelli.
Per concludere, se mescoli 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 incorporato, è sempre male.
- Potrebbe essere male.
- Al contrario, potrebbe essere un segno che il sito Web è stato scritto da professionisti che si preoccupavano delle prestazioni, eseguivano test specifici e stabilivano che per i loro clienti sarebbe stato più veloce incorporare parti di JavaScript.
- O potrebbe non significare nulla.
quindi piuttosto vergogna per la persona che dice "sito molto interessante, vergogna per gli script in linea nel codice sorgente" guardando solo la fonte inviata al browser, senza sapere nulla su come è stato fatto il sito web.