Perché i server non consegnano JS e CSS contemporaneamente all'HTML?

-2

Poiché ogni volta che un browser Web richiede una pagina, siamo quasi sicuri che ci siano anche file .css e .js. Perché aspettiamo che il browser analizzi il DOM e scopra quei file prima di inviare una richiesta per i file CSS e JS? Il server ha i file HTML e conosce tutti i collegamenti ad altre risorse. Perché il server non dice "Hei, vuoi foo.html? Eccoti qui, ma avresti bisogno anche di foo.js e foo.css" ? È stato considerato questo? Quali sono gli svantaggi di questa soluzione?

Non è il browser, è un'implementazione del server. Supponiamo che IIS o Apache eseguano la scansione preliminare del codice HTML e scopra tutti gli elementi CSS e JS inclusi in ciascuna specifica pagina HTML.

    
posta MBen 04.08.2016 - 21:15
fonte

2 risposte

9

La tua domanda sembra presupporre che tutte queste risorse provengano dalla stessa fonte. Ma non è così che funziona il World Wide Web.

L'ipotesi prevalente (e corretta) del browser è che le risorse possono provenire da qualsiasi luogo, e infatti spesso lo fanno. Questo è il motivo per cui possiamo ricucire pagine Web da molte risorse diverse e farle apparire come se fossero un singolo documento.

I file Javascript sono spesso serviti da CDN. Approvvigionarli da un CDN presenta alcuni vantaggi tecnici, come prestazioni elevate e disponibilità. Il caching del browser si prende cura dei problemi rimanenti.

    
risposta data 04.08.2016 - 21:46
fonte
6

Caching

Inviandoli separatamente, un browser web può semplicemente memorizzare nella cache i file CSS e Javascript e riutilizzarli quando un'altra pagina richiede lo stesso file, ignorando le richieste aggiuntive. Se vengono uniti al file HTML dal server, il browser vede ogni volta un nuovo file univoco e quindi deve scaricare sempre lo stesso contenuto CSS e Javascript.

CSS e JS potrebbero non essere affatto necessari

Come Tulains Córdova ha sottolineato nei commenti, ci sono programmi che possono essere e sono usati per scaricare file HTML, ma che non richiedono alcun file CSS o Javascript collegato (e non possono, poiché non possono analizzare HTML ).

Inoltre, alcuni browser non richiederanno i file Javascript quando Javascript è disabilitato.

    
risposta data 04.08.2016 - 23:00
fonte

Leggi altre domande sui tag