Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lazy Loading en Just Angular : Aïe ?

igor
June 27, 2017

Lazy Loading en Just Angular : Aïe ?

igor

June 27, 2017
Tweet

More Decks by igor

Other Decks in Programming

Transcript

  1. Roadmap 1. Être Lazy en TypeScript 2. Activer le lazy-loading

    3. Stratégies de chargement 4. Dépendances paresseuses Photo de Natalie Fox on Unsplash
  2. Être lazy en TypeScript Paresseux à gorge brune
 (Bradypus variegatus)

    Lac Gatun, République de Panama Attribution: Tauchgurke [Public domain], via Wikimedia Commons
  3. Bilan sur le Lazy-Loading • gagner du temps • gagner

    de la mémoire • permet le traitement sur des flux ∞ • un peu moins lisible • le Supplier doit être sans effets de bord
  4. Activer le lazy-loading Paresseux à 2 doigts (Choloepus didactylus) Zoo

    de Buffalo, New York By Dave Pape (Own work) [Public domain], via Wikimedia Commons
  5. Mesures * aucun animal n'a été maltraité durant les builds

    0 & 1: module B (material)
 2: module C (d3js) 3: module A
  6. Plutôt facile • lié aux modules et aux routes
 =>

    maîtriser les modules, le routing
 => bien modéliser les dépendances du projet • ⚠ Ne pas oublier d'enlever les imports des modules lazy
  7. 0/ Mesurez ! • On peut se baser sur la

    taille des bundles et des chuncks • ou utiliser les outils de développement de votre navigateur, s'il peut simuler des connections plus lente (throttling)
  8. Stratégies de chargement Paresseux à gorge brune
 (Bradypus variegatus) Cahuita

    National Park, Costa Rica By Christian Mehlführer, User:Chmehl (Own work) [CC BY 2.5], via Wikimedia Commons
  9. Trop facile • On peut facilement choisir comment on charge

    les modules • ⚠ La classe PreloadingStrategy est marquée 'Experimental'
  10. Dépendances paresseuses Paresseux à 2 doigts (Choloepus didactylus) Zoo New

    England, Boston By Eric Kilby from Somerville, MA, USA (Mom Sloth Carrying Big Baby) [CC BY-SA 2.0], via Wikimedia Commons
  11. Ouch ! • ⚠ Problème avec les singletons injectés
 =>

    CoreModule
 => ou exposer de 2 façon le module (forRoot avec les providers pour les singletons) • Mais on arrive quand même à faire ce qu'on veut
  12. Conclusion • Réduction du 'Web App Gap': 
 optimisation assets,


    AOT,
 lazy-loading,
 server-side rendering,
 ... • Bien concevoir ses modules et routes
 ⚠ bien connaître son application