Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-28261

SCORM session test for / detect network failure

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Minor Minor
    • 2.7
    • 1.9.12, 2.0.3, 2.3.3, 2.4.6, 2.5, 2.6
    • SCORM
    • All
    • Any
    • MOODLE_19_STABLE, MOODLE_20_STABLE, MOODLE_23_STABLE, MOODLE_24_STABLE, MOODLE_25_STABLE, MOODLE_26_STABLE
    • MOODLE_27_STABLE
    • MDL-28261-master
    • Hide
      1. Add a scorm package
      2. View the package in the player (e.g. as a student would)
      3. Open the JS Console and keep an eye on the console
      4. Wait for 20-30 seconds
      5. Shut your web server down (e.g. service apache2 stop)
      6. Switch back to your browser - DO NOT REFRESH
      7. Wait 20-30 seconds
        • Confirm that an alert was shown
      8. Restart your web server - DO NOT REFRESH
      9. Wait 20-30 seconds
        • Confirm that the alert disappeared
        • Remove /lib/yui/build/moodle-core-checknet/assets/checknet.txt
      10. Wait 20-30 seconds
        • Confirm that an alert was shown
      11. Click the 'Ok' button
      12. Wait a few seconds
        • Confirm that an alert was shown again
      13. Place the file back
      14. Wait 20-30 seconds
        • Confirm that the alert disappeared
      Show
      Add a scorm package View the package in the player (e.g. as a student would) Open the JS Console and keep an eye on the console Wait for 20-30 seconds Shut your web server down (e.g. service apache2 stop) Switch back to your browser - DO NOT REFRESH Wait 20-30 seconds Confirm that an alert was shown Restart your web server - DO NOT REFRESH Wait 20-30 seconds Confirm that the alert disappeared Remove /lib/yui/build/moodle-core-checknet/assets/checknet.txt Wait 20-30 seconds Confirm that an alert was shown Click the 'Ok' button Wait a few seconds Confirm that an alert was shown again Place the file back Wait 20-30 seconds Confirm that the alert disappeared

      One of the most common issues I deal with with clients is that their learners sometimes do not have learner progress recorded. The scorm packages that I see associated with this kind of issue are all the same in the way they behave: they initialize and send some data on initial load, and then do not send any data until the last page view of the scorm content. I suspect that somewhere in there the learner (on hotel wireless, traveling, not the best 'net connection, whatever) has network dropped, and when data tries to save, it is not saved, but the SCORM object does not tell them at any time that network connection has been lost. Some vendors create content that only calls LMSCommit() once in a single 20m session, just before LMSFinish()... and according to the SCORM standard this is not incorrect.

      It would be great if the Moodle scorm player could check the user's network connection at intervals, and notify the learner if network connection was intermittent or lost. This would preempt these issues with crappy vendor content. From what I can tell, if the network connection is lost, then LMSCommit() and other calls fail but do not return an error message. In my own testing, try/catch on these calls only catches in some browsers, not all.

      Based on my own research, I've been able to determine that it is possible to test network failure by injecting an image into the content page with a same-domain src. This test works in webkit and ff. (not in IE). I also tested the .isonline status, but that is not reliable either. So it seems there isn't any reliable cross-browser way of checking the learner's network connection using javascript.

      But I wanted to raise the issue here just in case there is a server-side way, that we could access from the scorm player code, of checking the network at intervals during an api session. I know this can add to bandwidth/load stuff, but it would be great, even as an option to turn on if a site had a lot of learners who weren't having their results saved.

            dobedobedoh Andrew Lyons
            agroshek Amy Groshek
            Petr Skoda Petr Skoda
            Eloy Lafuente (stronk7) Eloy Lafuente (stronk7)
            Adrian Greeve Adrian Greeve
            Votes:
            11 Vote for this issue
            Watchers:
            18 Start watching this issue

              Created:
              Updated:
              Resolved:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.