Lenteur fonction patch

Étiquetté : 

  • Lenteur fonction patch

    Posté par 666lestat sur 29 mars 2023 à 12h36

    Bonjour,

    j’ai un souci surement simple mais que je n’arrive pas à résoudre.

    j’ai un Bouton + et un – dans une gallerie (chaque “image” a son + et son -)

    Sur chaque bouton j’ai mis ceci en onselect :

    Patch(BDD_accessoires, ThisItem, {QTY: ThisItem.QTY-1}) (ou -1)

    Mon souci est que c’est trés lent. On clique puis il faut attendre 2 à 3 secondes.

    Pourriez vous m’aider ?

    Merci d’avance.

    PostID=hJZK7MKsLK1NOVx

    666lestat a répondu Il y a 2 mois, 3 semaines 1 Membre · 11 Réponses
  • 11 Réponses
  • Geoffroy

    Membre
    29 mars 2023 à 15h23

    Bonjour 666lestat

    La lenteur peut être due à beaucoup de facteurs qu’on ne maitrise pas forcément.
    Si tu n’as pas besoin que la base soit mise à jour à chaque clic, tu peux essayer d’utiliser des collections et actualiser la base avec la collection une fois que tu quittes l’écran par exemple. Ca limitera le nombre de requêtes vers la BDD.

    CommentID=vIqURbiuMTXepBG, PostID=hJZK7MKsLK1NOVx

  • 666lestat

    Membre
    29 mars 2023 à 15h25

    c’est une liste sharepoint avec moins de 50 items.

    C’est pour le suivi de stock en direct sur des accessoires.

    Je prefererais que cela soit en direct.

    C’est tout de même bizare que cela soit si long, non ?

    le but est juste de faire plus ou moins 1 quand on clique sur les icones…

    Merci pour ton aide.

    CommentID=41CcNjyepfjUp6j, PostID=hJZK7MKsLK1NOVx

  • DavidZed

    Membre
    29 mars 2023 à 18h35

    Le soucis c’est que quand tu enregistres une modif dans ta source de données, elle est réactualisée dans la gallerie pour afficher cette mise à jour. Si tu as des images de 2Mo par exemple, affichés en pleine résolution dans ta galerie, cela ralentira d’autant l’affichage.

    Tu peux soit passer par une collection comme le propose Geoffroy WAGNER , ou, autre alternative, tu peux ajouter un bouton ou un icone “valider” et sur tes boutons + / – , au lieu de patcher la source, tu incrémentes une variable, et tu patches la valeur sur le bouton de validation, ce qui limitera le nombre de patchs

    CommentID=gWNAHeQyd0RQCHu, PostID=hJZK7MKsLK1NOVx

  • 666lestat

    Membre
    30 mars 2023 à 7h21

    Merci pour ta réponse. Est il possible de ne mettre à jour que la quantité et non le reste ?

    L’ensemble des photos fait 1,51Mo, donc pas sur que le souci soit là, si ?

    Edit:

    Je viens de supprimer toutes les images et cela mets toujours environs 5 secondes pour indiquer le changement…

    ce qui serait bien c’est d’afficher la bonne quantité et de mettre à jours la base au bout de quelques seconde en arrière plan, mais ça, je ne sais pas faire.

    Par contre c’est hallucinant que cela prene autant de temps juste pour ça. Il n’y a pas une autre fonction plus efficace ?

    CommentID=kBsij8ZBGXKCwR3, PostID=hJZK7MKsLK1NOVx

  • DavidZed

    Membre
    30 mars 2023 à 10h08

    Pour que ce soit plus fluide pour l’utilisateur, il faut s’appuyer sur ce que Geoffroy WAGNER a proposé en premier :

    • Collecter la source de données dans une collection

    • Patcher les modifs de quantité sur la collection (là ça se fera en instantanné)

    • Une fois toute les modifs faites par l’utilisateur, avec un bouton “enregistrer les modifications” : Patcher la collection sur la source de données

    CommentID=rKuoQFLXmmnnidl, PostID=hJZK7MKsLK1NOVx

  • 666lestat

    Membre
    30 mars 2023 à 11h54

    Encore une question, Gallery est elle la meilleur solution pour ce type de projet ?

    J’affiche juste les images de mes accessoires avec un plus et un moins pour les entrée ou sortie de stock

    En attendant, je vais regarder comment mettre en place ce dont vous me parlez (je suis débutant).

    Merci.

    CommentID=5Al8ikbbKKypRie, PostID=hJZK7MKsLK1NOVx

  • 666lestat

    Membre
    30 mars 2023 à 14h00

    Je suis en train de tester la solution avec une variable. le seul hic, c’est que cela incrémente tout les compteurs de la gallery…

    Désolé pour ces soucis de débutant, mais je passe plus de temps à chercher qu’à faire. C’est plus simple avec du python lol

    CommentID=arlDDWVKaxQi1fi, PostID=hJZK7MKsLK1NOVx

  • Geoffroy

    Membre
    30 mars 2023 à 14h50

    Tu nous montres le code pour qu’on puisse t’aider ?

    CommentID=roPJjOdiPEpwHjk, PostID=hJZK7MKsLK1NOVx

  • 666lestat

    Membre
    31 mars 2023 à 7h32

    Voici déjà à quoi cela ressemble :

    C’est tout simple, quand on enleve un accessoire, on fait un moins, et quand on en remet un en stock on fait plus.

    sur mon dev, voici le code sur le plus et le moins :

    UpdateContext({i:i -1})

    UpdateContext({i:i +1})

    sur la validation :

    Patch(

    BDD_accessoires,

    ThisItem,

    {QTY: ThisItem.QTY + i}

    )

    avant j’utilisais patch sur le plus et le moins :

    Patch(BDD_accessoires, ThisItem, {QTY: ThisItem.QTY+1})

    Patch(BDD_accessoires, ThisItem, {QTY: ThisItem.QTY-1})

    Pour les collection, je suis débutant, je cherche à comprendre comment ça marche donc je n’ai pas mis en place et j’ai l’impression que c’est pas adapté. je ne veux pas que le tech fasse plusieurs accessoires en meme temps.

    CommentID=OnE3tufp4x4VTWn, PostID=hJZK7MKsLK1NOVx

  • Geoffroy

    Membre
    31 mars 2023 à 17h29

    A première vue, ton code semble répondre à ton besoin. J’ajouterais quand même une remise à zéro de la variable i après chaque Patch.
    Pour t’orienter sur l’utilisation d’une collection, il faudrait connaitre la structure de ta BDD (les colonnes).

    CommentID=004m72SvmjqOeHR, PostID=hJZK7MKsLK1NOVx

  • 666lestat

    Membre
    3 avril 2023 à 13h54

    Bonjour,

    Merci pour votre aide.

    j’ai déjà mis la remise à zero, ça aide 😄

    pour les colonnes, c’est trés simple :

    Type d’accessoire

    marque

    modele

    reference

    description

    QTY

    Image

    Fournisseur

    min stock

    max stok

    CommentID=xYd3MrCMNnlt3Ww, PostID=hJZK7MKsLK1NOVx

Connectez-vous pour répondre.