Skip to content

Update scorm_api.php async: true, for Scorm API#6312

Closed
LudiscapeXApi wants to merge 1 commit intochamilo:1.11.xfrom
LudiscapeXApi:patch-31
Closed

Update scorm_api.php async: true, for Scorm API#6312
LudiscapeXApi wants to merge 1 commit intochamilo:1.11.xfrom
LudiscapeXApi:patch-31

Conversation

@LudiscapeXApi
Copy link
Contributor

async: false provoque des erreurs ou des plantages. sur certains serveurs. J'ai déplacer le code dans la partie success de l'appel ajax afin de fluidifier le chargement des autres libs js.

async: false provoque des erreurs ou des plantages. sur certains serveurs. J'ai déplacer le code dans la partie success de l'appel ajax afin de fluidifier le chargement des autres libs js.
@ywarnier
Copy link
Member

Alors le async:false a été mis là il y a plus de 12 ans, donc probablement pas tout à fait au goût du jour. Par contre, il faut faire très attention avec l'async:true, parce que du coup les différents messages SCORM peuvent arriver dans le désordre et ça peut avoir un impact sur la cohérence des données (cas vécu, peut être pas avec cet async en particulier, mais dans SCORM en tout cas).

@ywarnier
Copy link
Member

Pour le reste, je suis intéressé par ton feedback. Modifier le code lié à SCORM apporte systématiquement des problèmes.
Par ailleurs, le déplacement du code dans "success" est un légèrement excessif, je pense : Si pas "success", il faudrait au moins logger quelque chose pour le dire, et le code lié au glossaire n'a pas grand chose à voir avec le succès du LMSInitialize (mais il est légitime de discuter de son intérêt si le SCO ne se charge pas)

@ywarnier
Copy link
Member

Je ne l'inclus pas dans 1.11.30 (je suis très frileux par rapport à ça) mais je le garde ici ouvert pour faire des tests à l'occasion quand c'est trop lent

@LudiscapeXApi
Copy link
Contributor Author

Oui, je comprends. J’ai cependant un doute sur le fait d’avoir couvert tous les cas en production. Par ailleurs, l’utilisation de [async: false] pourrait ne plus être prise en charge à l’avenir, notamment avec Chromium qui tend à devenir la référence. Bloquer le chargement d’une page en attendant la résolution d’une promesse peut poser des problèmes de performance, en particulier sur des serveurs peu puissants.

ywarnier added a commit to ywarnier/chamilo-lms that referenced this pull request Feb 23, 2026
ywarnier added a commit to ywarnier/chamilo-lms that referenced this pull request Feb 23, 2026
ywarnier added a commit to ywarnier/chamilo-lms that referenced this pull request Feb 23, 2026
@ywarnier
Copy link
Member

I went a different path because I think it's safer and faster this way. I had AI's help on this because there was a better way to pre-load the LMSInitialize() data, which I didn't know about.
I tested it on several SCORM 1.2 contents with boths LMSCommit() of progress and lesson_location, + tested the general progression (progress percentage). All seems to work fine.

Thanks for calling my attention to this through your PR.

@ywarnier ywarnier closed this Feb 23, 2026
@ywarnier
Copy link
Member

See commits listes above for the changes. These will be in 1.11.34

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants