Anomalie #25369
Double chargmeent des ressources poshprofil
100%
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 ?
Révisions associées
fixes #25369 : éviter double chargement des ressources si déja récup par eStorage
Historique
#1 Mis à jour par Renaud Dussol il y a plus de 5 ans
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 Mis à jour par Christophe LEON il y a plus de 5 ans
Même comportement sur metice avec Demopia ?
#3 Mis à jour par Renaud Dussol il y a plus de 5 ans
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 Mis à jour par Renaud Dussol il y a plus de 5 ans
- Assigné à changé de Christophe LEON à 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 Mis à jour par Renaud Dussol il y a plus de 5 ans
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 Mis à jour par Renaud Dussol il y a plus de 5 ans
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 Mis à jour par Renaud Dussol il y a plus de 5 ans
- Assigné à changé de Renaud Dussol à Christophe LEON
#8 Mis à jour par Renaud Dussol il y a plus de 5 ans
Tester en commentant plutôt le deuxième appel (au début de step3)
#9 Mis à jour par Christophe LEON il y a plus de 5 ans
- Statut changé de En attente d'informations à Résolu
- % réalisé changé de 0 à 100
Appliqué par commit aa0cad5185c9ea225d1fe9dc04e1edd8acf8458d.
#10 Mis à jour par Arnaud FORNEROT il y a plus de 5 ans
- Version cible mis à Envole 5.12
#11 Mis à jour par Arnaud FORNEROT il y a plus de 5 ans
- Statut changé de Résolu à Fermé