Devo richiedere il back-end per ogni piccolo pezzo di dati dinamici?

1

Supponiamo che esista una pagina implementata con AngularJS. Idealmente il frontend (Angular App) e il backend (servizi Web / API / chiamalo come preferisci) dovrebbero essere separati al 100% l'uno dall'altro, il che significa che il progetto frontend non ha accesso al database. Ed è quello che voglio raggiungere.

Diciamo che stiamo rendendo l'elenco dei prodotti. Il flusso di lavoro è:

  • richiede e visualizza il modello HTML (incluso il codice JS)
  • L'app angolare viene eseguita
  • Carica dinamicamente i dati dinamici (dati prodotti per mostrare l'elenco) e inseriscili nel modello.

Fino ad ora abbiamo effettuato 2 richieste (escludendo js / css / immagini ecc.) che va bene. Semplice, efficace, semplicemente fantastico. Ed è quello che più o meno viene mostrato in tutorial / guide. Ma non è la realtà. Quello che mi chiedo sono le piccole parti di dati che vengono visualizzate su tutto il layout di app, ma che devono essere recuperate dal database.

Exmaples di tali dati sono:

  • nome utente dell'utente che ha effettuato l'accesso nell'angolo in alto a destra
  • menu con categorie nella barra laterale
  • anche <select> le opzioni nei moduli vengono spesso caricate dal database (di nuovo categorie, ad esempio)

Per me non ha senso fare una richiesta di back-end per ognuna di queste parti di dati perché fa un sacco di richieste http da fare su ogni pagina di aggiornamento / init

Come gestirlo?

    
posta Jakub Matczak 07.03.2015 - 20:58
fonte

1 risposta

2

A un livello altissimo, ci sono esattamente due modi per mitigare questo problema:

1) Consenti richieste server "batch" , così puoi ottenere tutti questi bit casuali di dati in un round trip. Questo sembra appropriato per tutti i piccoli elenchi di categorie che devi inserire nelle barre laterali e nei campi del modulo.

2) Informazioni sulla cache sul client in modo da non doverla ri-richiedere per ogni pagina. In particolare, il nome utente potrebbe facilmente essere parte di qualsiasi ID di sessione / token / cookie / cosa che usi per mantenere l'utente "connesso" e le categorie per la barra laterale probabilmente saranno le stesse nella maggior parte delle pagine.

Come ha detto James, c'è il rischio di un'ottimizzazione prematura, ma la riduzione del numero totale di hop del server è quasi sempre una vittoria in termini di prestazioni (quando il server non sta facendo altro che recuperare un po 'di dati precompilati).

    
risposta data 07.03.2015 - 21:35
fonte

Leggi altre domande sui tag