Project

General

Profile

Anomalie #25369

Double chargmeent des ressources poshprofil

Added by Renaud Dussol over 1 year ago. Updated over 1 year ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Target version:
Start date:
10/05/2018
Due date:
% Done:

100%

Distribution:

Description

Il semble que systématiquement les ressources poshprofil se chargent deux fois, ainsi que la récupération des messages
Dans les logs réseau du navigateur, j'ai systématiquement un double appel aux services xdesktop (api/applis/messages,etc...)
Dans la console je vois des étapes en double : [STEP3 DATA], Récupération des messages...

En cherchant un peu, cela semble venir de edispatcher-etabs

Le test sur le cache suivi de la fonction setData sont appelés 2 fois :

- une première fois l. 297 dans la partie "attached" :


        var cacheItems=eStorage.get(this.url);
          if (cacheItems) {
              console.log("[RESSOURCES CACHE] '"+ this.uaj+"' apps from cache");
              var source=MX.getSource(this.id);
              //source.setData(cacheItems,true);
              this.step1();
          } else {
              this.step1();
          }
        },

- une deuxième fois l. 569 dans la partie "ready", fonction step3 :

        step3: function() {

          var cacheItems=eStorage.get(this.url);
          if (cacheItems) {
              console.log("[STEP3 CACHE] '"+ this.uaj+"' apps from cache");
              var source=MX.getSource(this.id);
              source.setData(cacheItems,true);
          } else {
             ...

Si je commente le premier code (en laissant juste this.step1();), je n'ai plus qu'un seul appel réseau à xdesktop et dans la console tout semble cohérent. Au niveau du bureau tout semble se charger correctement

Je ne connais pas assez polymer pour comprendre les tenants et aboutissant du lifecycle et les notions attached et ready, mais j'ai quand même l'impression que eStorage.get et setData (qui comprend la récupération des messages) s'exécutent 2 fois...

C'est normal ou c'est un doublon ?

Associated revisions

Revision aa0cad51 (diff)
Added by Christophe LEON over 1 year ago

fixes #25369 : éviter double chargement des ressources si déja récup par eStorage

History

#1 Updated by Renaud Dussol over 1 year ago

Le commentaire sur source.setData(cacheItems,true) est de moi, il n'est pas à l'origine

var cacheItems=eStorage.get(this.url);
          if (cacheItems) {
              console.log("[RESSOURCES CACHE] '"+ this.uaj+"' apps from cache");
              var source=MX.getSource(this.id);
              source.setData(cacheItems,true);
              this.step1();
          } else {
              this.step1();
          }
        },

#2 Updated by Christophe LEON over 1 year ago

Même comportement sur metice avec Demopia ?

#3 Updated by Renaud Dussol over 1 year ago

Alors j'ai testé mais difficile à dire car il va chercher aussi les ressources de l'établissement Bellepierre et encore une autre (en tout il y a 3 ADD PORTAL : Rectorat 9740049K, BELLEPIERRE 9741046U et Profilage académique xxx)

Mais je pense que oui car je vois bien 2 fois dans les logs :

16:58:07.318 +3ms => 11584ms : [STEP3 DATA] 'xxx' data recieved url=hubole.ac-reunion.fr
16:58:07.597 +67ms => 11862ms : [CACHE] Ressources 'Profilage académique' en cache 6f967a4367076cdfaf28290993b1325a
16:58:08.643 +835ms => 12908ms : Récupération des messages pour :xxx url=https://hubole.ac-reunion.fr/xdesktop/api/messages id=dbc2677a-5e8c-4c49-9363-548e48fa07f7
...
16:58:11.876 +2ms => 16141ms : [STEP3 DATA] 'xxx' data recieved url=hubole.ac-reunion.fr
16:58:12.000 +124ms => 16265ms : [CACHE] Ressources 'Profilage académique' en cache 6f967a4367076cdfaf28290993b1325a
16:58:12.827 +827ms => 17092ms : Récupération des messages pour :xxx url=https://hubole.ac-reunion.fr/xdesktop/api/messages id=dbc2677a-5e8c-4c49-9363-548e48fa07f7

Ces lignes sont en tout cas issues des fonctions eStorage.get et setData
Dans le log network en revanche j'ai l'impression de ne voir qu'un appel pour chaque portail...

Serait-ce un pb de conf chez nous ?

#4 Updated by Renaud Dussol over 1 year ago

  • Assigned To changed from Christophe LEON to Renaud Dussol

Dans la console, la variable "_CACHE" retourne le pia à always : true
Pourtant le param FROCE_PIA est à false chez nous
Ce n'est pas normal car a priori le true ou false provient directement de cette variable

Vérifier ce qui se passe chez nous

#5 Updated by Renaud Dussol over 1 year ago

Je suppose que je m'étais trompé car voici le retour de _PORTAILS sur mon serveur de test :

[{\"portails\":
[ {\"rne\":\"0060087M\",\"url\":\"\",\"label\":\"\"}, {\"rne\":\"xxx\",\"url\":\"https://eolesso.ihd.ac-nice.fr:443/saml?sp_ident=0060087M&RelayState=https://esterel.ihd.ac-nice.fr\",\"label\":\"Applis poshprofil\",\"portal\":\"esterel.ihd.ac-nice.fr\",\"error\":false,\"type\":\"COMMUNE\"}
]
,\"default\":\"\",\"guid\":\"d0fd7aec-4d56-4657-9a8c-d30ed3c13049\",\"profil\":{\"displayName\":\"Dussol Renaud\",\"uid\":\"RDussol\",\"profil\":{\"name\":\"National_6\",\"label\":\"Administratif\"}}
,\"zones\":\"\",\"pia\":{\"rne\":false,\"url\":false,\"libelle\":false,\"always\":false}}"

On voit que "always" est à false

J'avais du faire appel à _PORTAILS sur ma prod, qui elle a FORCE_PIA à true

Du coup cela n'explique pas pourquoi j'ai un double chargement...

On voit cependant dans le crochet "portails" qu'il liste deux portails (dont le premier n'a quasi aucune information)

#6 Updated by Renaud Dussol over 1 year ago

Voici une copie de ma console sur le serveur de test :

+2ms =>  4518ms : ADD PORTAL: Applis poshprofil xxx
+61ms => 4579ms : [CACHE REMOTE] remote cache used for esterel.ihd.ac-nice.fr
+6ms => 4585ms : [RESSOURCES CACHE] 'xxx' apps from cache
+10ms => 4595ms : ON EST DANS SETDATA
+9ms => 4604ms : [STEP3 DATA] 'xxx' data recieved url=esterel.ihd.ac-nice.fr
+4ms => 4608ms : [STEP1] xxx Applis poshprofil
+238ms => 4846ms : [WEB] Ressources Applis poshprofil from web : 3c7200bc5bd9ecdc2d9e95ac82e4e916
+85ms => 4931ms : [STEP2 FEDE] 'xxx' federation finished
+27ms => 4958ms : [WEB] Ressources Applis poshprofil en 112ms
+150ms => 5108ms : Récupération des messages pour :xxx url=https://esterel.ihd.ac-nice.fr/xdesktop/api/messages id=26fd7fab-16d7-4038-a3f4-218c634a4e89
+1ms => 5109ms : => AJAX
+1354ms => 6463ms : [TOKEN] xxx Applis poshprofil token=216a3ecdba8ddc
+53ms => 6516ms : [CACHE REMOTE] remote cache used for esterel.ihd.ac-nice.fr
+1ms => 6517ms : [STEP3 CACHE] 'xxx' apps from cache
+6ms => 6523ms : ON EST DANS SETDATA
+9ms => 6532ms : [STEP3 DATA] 'xxx' data recieved url=esterel.ihd.ac-nice.fr
+140ms => 6672ms : [CACHE] Ressources 'Applis poshprofil' en cache 3c7200bc5bd9ecdc2d9e95ac82e4e916
+696ms => 7368ms : Récupération des messages pour :xxx url=https://esterel.ihd.ac-nice.fr/xdesktop/api/messages id=26fd7fab-16d7-4038-a3f4-218c634a4e89
+2ms => 7370ms : => AJAX

La ligne "ON EST DANS SETDATA" a été ajouté par moi dans edispatcher-etabs.html, l.630, au début de la fonction setData

On voit bien que cette fonction est exécutée 2 fois

Si je commente l.302 dans le if (cacheItems) la ligne source.setData(cacheItems,true);

Le chargement en double n'apparait plus :

+4ms => 4192ms : ADD PORTAL: Applis poshprofil xxx
+87ms => 4279ms : [CACHE REMOTE] remote cache used for esterel.ihd.ac-nice.fr
+5ms => 4284ms : [RESSOURCES CACHE] 'xxx' apps from cache
+2ms => 4286ms : [STEP1] xxx Applis poshprofil
+203ms => 4489ms : [STEP2 FEDE] 'xxx' federation finished
+537ms => 5026ms : [TOKEN] xxx Applis poshprofil token=216a3ecdba8ddc
+37ms => 5063ms : [CACHE REMOTE] remote cache used for esterel.ihd.ac-nice.fr
+2ms => 5065ms : [STEP3 CACHE] 'xxx' apps from cache
+2ms => 5067ms : ON EST DANS SETDATA
+2ms => 5069ms : [STEP3 DATA] 'xxx' data recieved url=esterel.ihd.ac-nice.fr
null
+210ms => 5279ms : [WEB] Ressources Applis poshprofil from web : 3c7200bc5bd9ecdc2d9e95ac82e4e916
+101ms => 5380ms : [WEB] Ressources Applis poshprofil en 100ms
+194ms => 5574ms : Récupération des messages pour :xxx url=https://esterel.ihd.ac-nice.fr/xdesktop/api/messages id=08b9068d-59f0-4d06-a0fa-a29970efa62f
+2ms => 5576ms : => AJAX

#7 Updated by Renaud Dussol over 1 year ago

  • Assigned To changed from Renaud Dussol to Christophe LEON

#8 Updated by Renaud Dussol over 1 year ago

Tester en commentant plutôt le deuxième appel (au début de step3)

#9 Updated by Christophe LEON over 1 year ago

  • Status changed from En attente d'informations to Résolu
  • % Done changed from 0 to 100

#10 Updated by Arnaud FORNEROT over 1 year ago

  • Target version set to Envole 5.12

#11 Updated by Arnaud FORNEROT over 1 year ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF