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

@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 ?

Oui effectivement !

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 ?

1 « J'aime »

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 ^^

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 )

1 « J'aime »

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 :stuck_out_tongue_winking_eye:

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

1 « J'aime »

Yes tu peux créer !

1 « J'aime »

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

La PR :

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

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

1 « J'aime »

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 ?

Tu peux poster un petit mp4 sur le forum :slight_smile:

(du moment qu’il soit suffisamment compressé)

Avant / Après, tu vois bien là barre défilement à gauche qui continu à grandir ^^ :
visutempscharge2-ezgif.com-optimizevisu temps charge1

1 « J'aime »

Génial, je merge :slight_smile:

3 « J'aime »