Forum Discussion
After completing course then returning to it, pages go blank (Firefox)
I believe this issue ("After completing course then returning to it, pages go blank in Firefox") is due to Rise not correctly waiting for synchronous commit requests. The SCORM spec requires commits to be synchronous so that the sco can confirm that commits were saved to the LMS.
Modern browsers discourage synchronous ajax/fetch requests and in particular you can no longer make synchronous requests now during window close in any modern browser (this is why having a Save & Exit button enabled in your published course is so important).
ScormCloud and some others have taken the pragmatic approach that their scorm player needs to move to async requests. For some time now (maybe the last 18 months) your browser console would light up like a christmas tree in FireFox with react state/memo errors whenever you tried to navigate to a different lesson *after* the course was marked complete due to viewing the required percentage of lessons. In recent versions of Rise, it now does this as soon as you re-open a completed topic.
It appears that Rise not only doesn't wait for the synchronous commit requests to complete, but simultaneously seems to need them to complete in order for these state management methods to succeed.
While it's near impossible to debug compiled react code, the issue appears to be that LMSCommit is being called simultaneously multiple times when you navigate between lessons. This occurs near simultaneously with other functions that require the result of these commits. If LMSCommit makes async requests it will return "true" immediately and Rise works. if LMSCommit makes sync requests, everything blows up on lesson load.
This occurs for me in FX *every* time if I enable synchronous commits and *never* if I enable asynchronous requests, but most people don't have the luxury of having this control.
This isn't a bug in the LMS or an issue with the LMS not being "industry standard", in fact even though it's inevitable that we will need to move to async commits when browsers fully remove synchronous requests, I'd argue that this in fact makes LMS like ScormCloud non-conformant in the strictest sense.
So to trigger this you need:
- FireFox (the issue doesn't appear to effect Chromium or Webkit browsers, but I'm not sure if this is due to a quirk which might be fixed in the future or intended behaviour)
- An LMS that makes synchronous commits (in my experience this is most LMS other than ScormCloud)
- To have completed the course and then navigate to a new lesson or in more recent versions of Rise to open a completed course in review mode
- AdrienJUILLE2672 years agoCommunity Member
Thank you SO MUCH Andrew for this long reply !
It's a bit technical for me but I think I understand the essential idea, and at least : one explanation that makes sense about this bug !Do you mind if I copy your reply to the bug case I've opened in bugzilla's website ?
This occurs for me in FX *every* time if I enable synchronous commits and *never* if I enable asynchronous requests, but most people don't have the luxury of having this control.
Do you know if (and how) I can change that setting in Firefox ? Or can I configure the SCORM or modify SCORM Package to enable asynchronous request when launched ?
More generally speaking, do you see any solution that could help pass through this issue ? Firefox is the default browser in my organisation (french ministry of interior) so it's very difficult to make learners use another browser.
Thanks by advance,
Adrien JUILLERAT
Related Content
- 4 months ago