Ho fatto del mio meglio per ridurre la dimensione del fascio di Angular 2 e sono riuscito a ridurre le dimensioni a ~ 300kb (Angular 2 + jquery + bootstrap + alcune altre piccole librerie di terze parti) usando Browserify
+ Rollup
+ Minify
+ GZIP
ma anche con questa dimensione, ci vuole ancora un po 'per scaricare il bundle e poi c'è il tempo di caricamento iniziale per reflect e zone.js da prendere in considerazione, il che significa che può richiedere fino a 4-5 secondi su dispositivi più lenti (telefoni cellulari) per caricare il sito.Angolare 2 Avvio caricamento iniziale
Mentre capisco che questo è inevitabile (almeno per ora), c'è un modo per mostrare l'avanzamento del caricamento per il carico iniziale in termini di percentuale di inizializzazione download + reflect/zone.js?
maggior parte degli esempi fuori ci sono in questo modo:
<body>
<my-app>Loading...</my-app>
</body>
che sta lavorando e la Loading...
possono essere sostituiti da una filatrice o qualunque modello personalizzato si potrebbe scegliere, ma c'è un modo per ottenere l'avanzamento effettivo in modo significativo?
Quello che sto cercando è qualcosa come lo stato di caricamento di Gmail
che è una barra di avanzamento effettiva con min/max e non un certo spinner indeterminato in modo che gli utenti possano avere qualche forma di indicazione su quanto tempo dovranno attendere il caricamento del sito.
Molte grazie in anticipo,
aggiornamento (24-Ott-2016)
ho iniziato a utilizzare NGC
per ahead-of-time compilazione (https://angular.io/docs/ts/latest/cookbook/aot-compiler.html), che ha accelerato le cose un po ' (anche se le dimensioni del bundle sono aumentate a ~ 500kb compresse) ma ci vogliono ancora ~ 300ms per caricare il sito Web dopo che tutto è stato scaricato.
Idealmente, vorrei essere in grado di intercettare sia il download e il processo di caricamento, indagare il loro stato (ad esempio, 230kb/500kb scaricato o il 10% di compilazione del modulo completo) e quindi caricare una barra di avanzamento e uno stato barra che in realtà dà qualche indicazione all'utente che cosa stanno aspettando.
Quello che ho attualmente è di caricare un CSS minimo per una barra di avanzamento, mostrarlo e quindi caricare tutte le cose angolari in ordine sulla funzione e mentre è molto più agevole di prima, non è ancora ovvio per quanto tempo il l'utente dovrà aspettare - essere da mezzo secondo a pochi secondi a seconda della connessione Internet e delle funzionalità del dispositivo.
Buona domanda, ma penso che una soluzione generica (potresti usare il rollup, qualcun altro potrebbe usare il webpack, ecc.) È complicata? Probabilmente richiede un po 'di aiuto/api/gancio angolare perché funzioni anche lui. –
hai provato la compilazione AOT? (per l'ottimizzazione della velocità) –
@redaigbaria che ho.È decisamente più veloce, ma preferirebbe avere una barra di avanzamento con uno stato significativo per i 2 secondi o così si impiegano dispositivi più lenti. – kha