Qu'est-ce que le chargement impatient?

Qu'est-ce que le chargement impatient? Je code en PHP / JS mais une réponse plus généralisée sera très bien.

J'ai vu beaucoup de questions concernant Java et Ruby, mais je ne connais aucun de ces langages, et j'ai du mal à lire le code. Je ne sais pas ce qui est censé faire en premier lieu

134
demandé sur Quamis 2009-08-19 15:37:03

3 réponses

Il y a trois niveaux:

  1. Chargement impatient: vous faites tout quand on vous le demande. L'exemple classique est lorsque vous multipliez deux matrices. Vous faites tous les calculs. C'est un chargement impatient;
  2. chargement paresseux: vous ne faites un calcul que si nécessaire. Dans l'exemple précédent, vous ne faites aucun calcul tant que vous n'ACCÉDEZ PAS à un élément de la matrice de résultats; et
  3. chargement excessif: c'est là que vous essayez d'anticiper ce que l'utilisateur demandera et précharge il.

J'espère que cela a du sens dans le contexte que vous voyez.

Laissez-moi vous donner un exemple "Webby".

Imaginez une page avec des images de retournement comme pour les éléments de menu ou de navigation. Il y a trois façons dont le chargement de l'image peut fonctionner sur cette page:

  1. Chargez chaque image requise avant de rendre la page (eager);
  2. Charger uniquement les images affichées sur la page charger et charger les autres si/quand elles sont nécessaires ( paresseux ); et
  3. charge uniquement les images affichées lors du chargement de la page. Une fois la page chargée, Préchargez les autres images en arrière-plan au cas où vous en auriez besoin (trop impatient ).

Sens?

312
répondu cletus 2009-08-19 12:00:02

C'est le contraire de lazy loading , qui reporte l'initialisation d'un objet jusqu'à ce que l'objet soit nécessaire. Eager loading initialise un objet lors de sa création.

21
répondu Bill the Lizard 2009-08-19 11:40:40

Si vous imaginez que vous avez un objet appelé personne qui a un nom, une date de naissance et un nombre de détails moins critiques, disons couleur préférée, programme TV préféré.

Pour charger paresseusement cette classe, vous l'initialiseriez en lisant peut - être à partir d'une base de données tous les détails les plus fréquemment utilisés (par exemple le nom et la date de naissance) et ne lirez que les détails les moins utilisés quand / s'ils sont nécessaires, le chargement impatient est le contraire, c'est-à-dire que vous chargez

Le les avantages du chargement paresseux sont souvent cités comme effiecency, mais si les objets ne sont pas si complexes ou si l'efficacité n'est pas une préoccupation, le chargement impatient peut être utilisé

10
répondu Dave D 2009-08-19 11:43:38