È una buona idea avere componenti UI separati per effettuare le proprie chiamate al servizio web?

3

Ho pochi componenti dell'interfaccia utente in un'applicazione web angularjs. Ogni display visualizza in base allo stesso input. Uno mostra statistiche che sono calcolate sulla base di un periodo di tempo. Altro mostra un grafico del progresso giornaliero di tutte quelle statistiche nel periodo di tempo specificato.

Ho progettato entrambi i componenti in modo tale da effettuare la propria chiamata API. Comunque ora so che i dati che il componente A riceve possono essere usati per configurare il componente B invece di fare un'altra chiamata API.

Ci sono alcuni calcoli sui dati giornalieri per ottenere informazioni aggregate. Questo può essere fatto anche sul frontend.

Esempio: Se i dati sono per un anno, il componente A mostra un grafico di 10 statistiche basate su un elenco di 365 voci e il componente B riceve 10 statistiche basate sul totale delle stesse 365 voci. La componente B deve anche mostrare i cambiamenti in ciascuna statistica in termini di percentuale tra gli ultimi 365 giorni e quelli che sono stati selezionati.

Devo averlo come due chiamate API o solo una?

    
posta Amogh Talpallikar 28.08.2015 - 12:59
fonte

1 risposta

3

Dipende. Quando A e B ottengono i loro dati ciascuno da solo, questo ha il vantaggio che entrambi sono indipendenti l'uno dall'altro e A può essere usato senza B e B senza A. Lo svantaggio è che potrebbe essere necessario estrarre gli stessi dati la rete due volte e che i dati visualizzati da A e B potrebbero non essere sempre coerenti perché il contenuto è cambiato tra le due richieste di dati.

Se i dati devono essere coerenti e / o si desidera ridurre il traffico di rete, sarà probabilmente una buona idea introdurre un componente C che funziona come un "livello dati", rende l'API chiamata sia per A che per B e fornisce gli stessi dati (o viste differenti sugli stessi dati) per entrambi. Ciò permetterà comunque di usare A & B indipendentemente l'uno dall'altro (ovviamente, non indipendente da C). Inoltre, questo ti fornisce immediatamente un posto dove puoi inserire qualsiasi codice condiviso tra A e B.

    
risposta data 28.08.2015 - 14:23
fonte

Leggi altre domande sui tag