# Amélioration performance front : Implémentation d'un cache Promise pour les requêtes GET similaires

**URL:** <https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078>\
**Category:** Développement\
**Created:** [Septembre 4, 2024, 5:33 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078 "2024-09-04T17:33:27Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Septembre 4, 2024, 5:33 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/1 "2024-09-04T17:33:27Z")

</div>

@pierre-gilles,

Une petite question. Aujourd’hui, dans le menu d’edition, on récupère bien la liste de devices / features x fois , x étant la liste des boxs, à l’ouverture de chaque dashboard ?

Si c’est bien le cas, serait-il interessant de partager la liste des device récupérée juste à l’ouverture de l’édition ? Ou ca n’aurait aucun impact ?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 5, 2024, 7:11 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/2 "2024-09-05T07:11:51Z")

</div>

> [@Terdious](#):
>
> on récupère bien la liste de devices / features x fois , x étant la liste des boxs, à l’ouverture de chaque dashboard ?

Oui effectivement !

> [@Terdious](#):
>
> Si c’est bien le cas, serait-il interessant de partager la liste des device récupérée juste à l’ouverture de l’édition ?

Cela peut-être intéressant, mais ce n’est pas un problème simple si on veut le faire bien ^^

Pourquoi, cela pose problème chez toi ?

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Septembre 5, 2024, 7:18 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/3 "2024-09-05T07:18:11Z")

</div>

En effet, avec tous les test sur les charts là, lorsque j’ai des dashboards avec de nombreuses box Chart + Appareils, ça commence à mettre un certain temps à s’afficher (2/3s). En soit rien de grave, mais on voit que le traitement des listes d’appareils prend du temps.

Après j’investiguerais pour vraiment savoir si ce sont les multiples get devices qui prennent du temps ou si ce sont les traitement derrière pour créer les listes de features en retirant celles sélectionnées (Je soupçonne le get device car ça le fait que j’ai de la sélection ou non).

Après sincèrement ce n’est pas dérangeant en soi. Mais ce serait plus fluide ^^

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 5, 2024, 7:28 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/4 "2024-09-05T07:28:16Z")

</div>

Je vois !

On pourrait mettre en place un système de cache de Promise pour empêcher que 2 requêtes partent en même temps.

Ex: 2 widgets appellent la même API. Le premier widget envoie la requête et le deuxième attend juste le résultat de la même requête.

ça évite d’avoir 2 calls en parallèle pour la même choses, mais ça ne créé pas non plus de souci de cache car on ne cache juste l’exécution ( pas le résultat )

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Septembre 5, 2024, 7:31 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/5 "2024-09-05T07:31:51Z")

</div>

Je me représente tout à fait la logique qui en effet devrait performer.  
Pour autant côté code, je ne me représente pas du tout 😜

Je crée une issue github pour notre bonne mémoire ? ^^

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 5, 2024, 7:33 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/6 "2024-09-05T07:33:55Z")

</div>

> [@Terdious](#):
>
> Je crée une issue github pour notre bonne mémoire ? ^^

Yes tu peux créer !

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Janvier 24, 2025, 10:16 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/7 "2025-01-24T10:16:35Z")

</div>

J’ai fais une PR qui implémente ce fonctionnement, autant en local que via Gladys Plus 🙂

La PR :

> <https://github.com/GladysAssistant/Gladys/pull/2211>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fa…st as possible, make sure to review and check all of these items:
> 
> \- \[x\] If your changes affects code, did your write the tests?
> \- \[x\] Are tests passing? (\`npm test\` on both front/server)
> \- \[x\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[x\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- \[x\] If you are adding a new features/services, did you run integration comparator? (\`npm run compare-translations\` on front)
> \- \[x\] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to the community (\[french forum\](https://community.gladysassistant.com/)/\[english forum\](https://en-community.gladysassistant.com/)) for testing before merging.
> 
> \### Description of change
> 
> Fix https://github.com/GladysAssistant/Gladys/issues/2116

Si tu veux tester la différence sur Gladys Plus :

[https://add-cache-for-pending-reques.gladys-plus.pages.dev](https://add-cache-for-pending-reques.gladys-plus.pages.dev/)

Je serais curieux de voir la différence chez toi ! Chez moi c’est déjà relativement rapide donc je vois pas beaucoup de différences

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Janvier 24, 2025, 10:24 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/8 "2025-01-24T10:24:32Z")

</div>

C’est sans commune mesure !! un léger chargement pour la 1ère box et le reste est instantané ^^

Tu veux un gif de comparaison ?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Janvier 24, 2025, 10:31 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/9 "2025-01-24T10:31:55Z")

</div>

Tu peux poster un petit mp4 sur le forum 🙂

(du moment qu’il soit suffisamment compressé)

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Janvier 24, 2025, 10:55 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/10 "2025-01-24T10:55:25Z")

</div>

Avant / Après, tu vois bien là barre défilement à gauche qui continu à grandir ^^ :  
 ![visutempscharge2-ezgif.com-optimize](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/d/0/d0421b252de464bc01dca07932dde688090ba590.gif) ![visu temps charge1](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/4/8/48f136b5e10a066a1aacc6ad9c76034798077ed4.gif)

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Janvier 24, 2025, 10:57 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/11 "2025-01-24T10:57:46Z")

</div>

Génial, je merge 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Janvier 31, 2025, 11:20 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/12 "2025-01-31T11:20:57Z")

</div>

Corrigé dans Gladys Assistant 4.52.0 :

> [@Gladys Assistant 4.52.0 : Améliorations UX à la pelle!](https://community.gladysassistant.com/t/gladys-assistant-4-52-0-ameliorations-ux-a-la-pelle/9349):
>
> Salut à tous ! On vous a écouté blush Je sors aujourd’hui Gladys Assistant 4.52.0, une version qui apporte pas mal de correctifs sur l’expérience utilisateurs. Changements : • Création de scène : Correction d’un bug où les caractères spéciaux en fin de titre de scène empêchait la création de la scène (@Pierre-Gilles) • Graphiques : Correction des problèmes de fuseau horaire, détecté par @lmilcent au Canada. (@Pierre-Gilles) • Validation des utilisateurs : Correction d’un problème lors de…

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Janvier 31, 2025, 11:21 UTC](https://community.gladysassistant.com/t/amelioration-performance-front-implementation-dun-cache-promise-pour-les-requetes-get-similaires/9078/13 "2025-01-31T11:21:00Z")

</div>


