Forum Discussion
After completing course then returning to it, pages go blank (Firefox)
We have created multiple courses in Rise and posted them to our LMS. During testing, after completing the courses, if we go back into the courses, non-text elements tend to load slowly, and if we scroll beyond any element before it loads, the page goes blank, and we have to refresh the browser window. If we scroll very slowly and wait for each element to appear before scrolling further, the page doesn't crash. This happens with Firefox but not Edge. The elements still load slowly on Edge, but we can scroll past them. Also, we have tested with turning off the Block entrance animations. We still encounter the issue.
16 Replies
- AndrewSmith-032Community Member
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
- AdrienJUILLE267Community 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
- AndrewSmith-032Community Member
Hi Adrien, sure, happy to be included on a bug ticket. Cudos to your organisation for mandating FX. If you are serious about privacy and security, it's your best choice. Unfortunately though, there is nothing you can do to address this in your browser settings, it's the code your LMS uses to send the scorm data to the server whenever the scorm package calls Commit/LMSCommit().
To convert your LMS to asynchronous requests you'd need to be able to update the LMS code (the LMS javascript that runs inside your web browser). This isn't a practical solution for most people. It's also not a simple switch as there could be lots of client side and serverside code that is relying on synchronous commits.
Given that synchronous commits are part of the scorm spec and for the time being they are still supported by all browsers, it really needs to be addressed within the Rise player.
I'll do some testing later today, but I *think* this only effects courses that complete according to a percentage of content viewed. You might be able to get around it with a dummy assessment and a single "Do you want to complete this topic Yes/No?" question as the final lesson and use that as the completion trigger. But that's pretty ugly. I'll try to confirm this and let you know.
Andrew
- AdrienJUILLE267Community Member
Hi Andrew,
Thanks you so much again for these detailed explanations !
And thanks for the time you spent and you'll spend on these tests. Very helpful and -overall-, even without solution, it's satisfying to have explanations on this bug !
We found some "tricks" to bypass this problem, but unfortunately it's always to the detriment of user experience...
Thanks again,
Adrien
Related Content
- 4 months ago