Alcuni esempi:
- Sprites di immagini CSS
- Compilare JS necessario su ogni pagina web in un file
- Implementazione di lazy-loading per le immagini
- Consolidare tutte le meta informazioni (nome utente, indirizzo CDN, ecc.) in una richiesta
- Specificamente per i caricamenti del browser AWS S3 utilizzando i documenti della politica firmati: acquisizione di tutti i documenti della politica dal server in una richiesta invece di una richiesta per documento della politica
Alcuni di questi sono più facili da implementare di altri. Alcuni di questi devono essere eseguiti una sola volta e altri devono essere eseguiti con ogni aggiornamento o modifica. Sembra che non fare nulla di tutto ciò sarebbe più semplice da un punto di vista logistico, tuttavia sono preoccupato anche per le prestazioni del server.
Spero di evitare lo slogan "evita l'ottimizzazione prematura della radice di tutto il male bla bla" commenta qui. Il mio progetto è nelle fasi iniziali e ora vedo che stabilire un formato API errato o inefficiente sarebbe difficile da modificare in seguito. Quindi, vorrei chiedere consiglio a chi ha esperienza in questa materia:
-
Quanto tempo di caricamento verrebbe salvato per l'utente per ogni richiesta consolidata? (vale a dire qual è il sovraccarico di ogni richiesta escludendo il tempo impiegato per scaricare il carico utile effettivo)
-
Il consolidamento delle richieste HTTP riduce sostanzialmente l'utilizzo / i costi del server? Se è così, sei riuscito a quantificarlo? (vale a dire qual è il sovraccarico di ogni richiesta escluso l'accesso al database e "il codice che effettivamente fa roba")
Forse pertinente per la seconda parte della domanda: il mio server back-end è nginx che serve Django Rest Framework in esecuzione su Gunicorn ospitato su EC2 dietro il Load Balancer di AWS. Le risorse statiche saranno ospitate su S3 e servite da Cloudfront.