Se stai eseguendo il rendering lato server in formato HTML, la tua architettura è la seguente:
- L'utente richiede l'URL, il server genera l'HTML per la pagina completa
- Browser esegue il rendering HTML, la pagina viene mostrata, javascript è inizializzato
- Javascript aggiunge gestori di eventi, la pagina è interattiva
Se stai eseguendo il rendering lato client, la tua architettura si presenta così:
- L'utente richiede l'URL, il server genera l'HTML per la pagina del contenitore
- Il browser esegue il rendering del contenitore vuoto ("caricamento in corso ..."), javascript viene inizializzato
- Javascript esegue il routing, ricava la pagina che l'utente deve vedere, lancia una richiesta giusta per il contenuto
- Il contenuto viene restituito, il gestore javascript lo esegue e lo inserisce nella pagina
- Javascript aggiunge gestori di eventi, la pagina è interattiva
Puoi collegare le cose un po 'inserendo i dati iniziali nella pagina, ma la realtà è che con il rendering lato client la pagina viene sempre sottoposta a rendering due volte, una volta per il container per avviare un ambiente e una volta nel tuo javascript templating codice per il contenuto effettivo, che è ancora una volta rispetto a un'architettura di rendering lato server.
Ciò significa che se si ha una situazione in cui è probabile che gli utenti richiedano una pagina e poi si allontanino dopo averlo letto, come con Twitter, sono mal servite dal rendering lato client, perché la prestazione è sempre inferiore a server- rendering laterale (a condizione di ottimizzare entrambi nello stesso modo, ove possibile).
Tuttavia, se ci si aspetta che gli utenti rimangano sulla pagina, caricando più dati pezzo per pezzo e con una ricca interazione con tali dati, come una tipica app Web, il rendering lato client può essere un'architettura migliore per la consegna del stesso set di funzionalità più veloce. Spesso è più semplice implementare la logica di gestione di rendering / evento se è tutto nella stessa codebase lato client, e non c'è un grande svantaggio delle prestazioni.