Index: openacs-4/packages/proctoring-support/www/resources/proctored-page.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/proctoring-support/www/resources/Attic/proctored-page.js,v diff -u -N -r1.1.2.16 -r1.1.2.17 --- openacs-4/packages/proctoring-support/www/resources/proctored-page.js 22 Oct 2020 14:22:20 -0000 1.1.2.16 +++ openacs-4/packages/proctoring-support/www/resources/proctored-page.js 19 Nov 2020 18:16:15 -0000 1.1.2.17 @@ -162,8 +162,16 @@ function approveStartExam() { valid = false; clearError(); + + var rescheduleHandle = null; + function reschedule(ms) { + clearTimeout(rescheduleHandle); + rescheduleHandle = setTimeout(approveStartExam, ms); + } + var formData = new FormData(); formData.append("object_id", objectId); + var request = new XMLHttpRequest(); request.timeout = 10000; request.addEventListener("readystatechange", function () { @@ -175,17 +183,19 @@ location.href = objectURL; } } else { - var errmsg = requestFailedMessage; - setError(errmsg); - setTimeout(approveStartExam, 10000); + setError(requestFailedMessage); + reschedule(10000); } } }); request.addEventListener("timeout", function () { - var errmsg = requestTimedOutMessage; - setError(errmsg); - setTimeout(approveStartExam, 10000); + setError(requestTimedOutMessage); + reschedule(10000); }); + request.addEventListener("error", function () { + setError(requestFailedMessage); + reschedule(10000); + }); request.open("POST", examinationStatementURL); request.send(formData); }