Per le app Web (vs le pagine Web) perché non inserire script e css in linea? [duplicare]

4

Capisco che per i normali siti web vorresti condividere script e css e che quindi piaccia a loro significhi che ogni pagina li condivide dalla cache. Ma questa domanda non riguarda "normali siti web multipagina", si tratta di WebApps. Pagine in cui viene pubblicata solo una pagina. Gli esempi includono gmail, nuove mappe di google, facebook, ecc ...

Usiamo meno ecc. per compilare CSS, possibilmente da più file, e usiamo vari minifiers JavaScript per concatcare / comprimere il nostro JavaScript in un unico file, perché non lo facciamo solo un passo avanti e compiliamo tutto direttamente nel File HTML?

Almeno per le applicazioni web a pagina singola (pensa a gmail, google maps, facebook), sembra che sarebbe il migliore. Una singola richiesta ti fa tutto.

Cosa mi manca? Sembra che qualsiasi argomento applicato per concatenare il CSS e il JavaScript dovrebbe applicarsi allo stesso modo all'intero pacchetto CSS + JavaScript + HTML

    
posta gman 21.05.2014 - 17:19
fonte

1 risposta

1

Anche in un contesto di un'applicazione a singola pagina, l'idea di memorizzare nella cache è valida.

Considera che potresti utilizzare librerie JavaScript che sono pubblicamente disponibili (jQuery, ad esempio). È probabile che vengano utilizzate anche le applicazioni web di altre persone (singola o multipla). Se utilizzi lo stesso URI pubblico, potremmo riuscire a memorizzarlo nella cache.

Ma aspetta, forse hai la versione jQuery nascosta sui tuoi server, per scaricare altri, o perché puoi servire una connessione migliore, o qualsiasi altra cosa. Ora puoi essere in linea, giusto? Sì, a condizione che non ci siano altre app Web che utilizzano anche quella libreria o che è altamente improbabile che gli utenti utilizzino più di una di quelle webapp.

Cose che scrivi specificamente per quella tua singola pagina, che non hanno rilevanza per altre pagine o applicazioni, sì, puoi tranquillamente inline. Per il resto, direi: pensa più in largo della pagina.

Ci sono dei compromessi con l'approccio che suggerisci. Non è intrinsecamente male, e ci sono aspetti positivi chiari (meno richieste HTTP), e ci sono aspetti negativi (problemi di memorizzazione nella cache). Lo chiamerei ottimizzazione; se hai prove valide e verificabili che l'inlining risolverà un problema, allora è un buon motivo per farlo.

Potresti trovare i commenti su la risposta accettata per "Perché non incorporare stili / script in HTML invece di link? " pertinenti, in particolare :

If you are doing a single page app style site then where the vast majority of the code was specific to one page then it might make some sense still?

If the page is visited only once, yes. If visited multiple times, all the embedded stuff gets transmitted multiple times instead of just once and cached.

Do not forget the effects of a CDN or local caching at the isp. My request for the javascript for google likely never reaches google even if I have a cache miss locally because another person who uses the same isp will have already caused the isp to cache the data.

Esiste anche il potenziale problema di analisi , anche se è più un avvertimento che un problema irrisolto.

    
risposta data 21.05.2014 - 18:17
fonte

Leggi altre domande sui tag