Maison > interface Web > js tutoriel > le corps du texte

Problème de réconciliation de liste

Barbara Streisand
Libérer: 2024-10-17 23:21:29
original
570 Les gens l'ont consulté

List Reconciling Problem

Qu'est-ce que Réconcilier (Réconciliation) ?

Dans le développement Web Frontend, il s'agit d'un processus de différenciation des versions source et cible d'une liste de dépendances (qui crée une liste d'éléments rendus) pour dites ce qui arrive aux éléments : ajoutés, supprimés ou déplacés.

Le problème

Les deux premiers ne posent pas de problème, mais le problème est de savoir si un élément a été déplacé

Si la valeur d'un élément suivi est 1 dans une liste de [2, 1, 3], qu'arrive-t-il à la valeur si la liste est réorganisée comme [1, 2, 3].

  • Est-ce que 1 a été supprimé puis ajouté un autre 1 ?
  • Est-ce que 1 vient d'être déplacé au début ?

Vous ne pouvez pas savoir s'il y a eu de nombreuses opérations qui ont abouti à un nouveau tableau ou, par ex. seulement un. Vous devez le comprendre d'une manière différente.

Pourquoi est-ce important ?

Eh bien, cela n'a peut-être pas d'importance à moins qu'il ne s'agisse d'un frontend... Principalement parce que les développeurs veulent des performances et une cohérence pour les utilisateurs.

Imaginez que vous ayez 50 albums de musique, alors que vous n'en voyez que 10 préextraits, vous en recherchez un spécifique par son nom, ce qui déclenche une demande de récupération avec 10 autres albums trouvés.

Maintenant, comment savoir si vous devez créer plus d'éléments HTML, supprimer les éléments redondants ou réorganiser ceux existants ?

Et c'est un vrai problème, si vous vous trompez, vous repartez avec de nombreux problèmes :

  • Les éléments restants qui ne sont plus censés être là
  • Les éléments existants qui étaient destinés à être actualisés contiennent toujours des informations obsolètes
  • Éléments existants qui n'étaient PAS destinés à être actualisés et écrasent les modifications apportées par l'utilisateur
  • Les éléments existants qui devaient être réorganisés (déplacés) sont supprimés et de nouveaux ont été créés

C'est parti : vous rencontrez des problèmes de cohérence et de performances, les utilisateurs n'auront pas de plaisir à utiliser votre site Web.

Solutions

Il existe différentes solutions, mais elles ont toutes leurs propres limites, il n'existe pas de moyen idéal pour y parvenir.

Comment les différents frameworks le font-ils ?

Fondamentalement, ils vous obligent (généralement) à mettre un attribut clé pour chaque élément afin que l'algorithme de réconciliation puisse facilement déterminer si l'élément doit être réutilisé, supprimé ou s'il n'existe pas et nécessite une création.

Et?

Il existe une autre façon, qui consiste à parcourir les données et à comparer ce qui a été modifié et à quoi appartient l'élément.

Même GitHub et Git ne parviennent pas toujours à indiquer avec précision la différence entre les lignes ajoutées et supprimées de vos fichiers...

Bien sûr, vous pouvez éviter la réconciliation en gérant manuellement vos éléments, mais vous devrez créer votre propre architecture personnalisée pour cela, vous finirez souvent par reconstruire toute la liste des éléments sans réutilisation.

Vous pouvez tirer vos propres conclusions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal