eEx-Aufgaben mit JavaScript programmieren
Wenn Sie mit JavaScript umgehen können, dann sollte Ihnen das Programmieren von eEx-Aufgaben keinerlei Probleme machen. Die Anforderungen an die Programmfunktionen sind gering. Ihre Anwendung muss folgende Funktionen anbieten:
- Erzeugen der Aufgabe. Die eEx-Übungen und Aufgaben sind dynamisch. Das bedeutet, dass die Aufgabenparameter einer Übung sich bei jedem Aufruf ändern sollten. Wiederholungen bei bestimmten Fragen sind zwar nicht gänzlich zu vermeiden, sollten aber so weit wie möglich ausgeschlossen werden.
- Prüfen der Ergebnisse und die Übermittlung an den eEx-Webserver.
- Die meisten Browser verfügen über eine Funktion zum Anzeigen des Quellcodes. Deshalb ist es technisch möglich Lösungen der Aufgaben aus dem Quellcode abzuleiten. Der Code sollte deshalb verschlüsselt oder verschleiert werden. Auch so lassen sich die Ergebnisse nicht vollkommen und hundertprozentig schützen. Darum geht es auch nicht. Die Aufgaben und Übungen sollen helfen das Wissen und die Fertigkeiten zu trainieren und so zu festigen. Die erzielten Ergebnisse in den Statistiken sollen in erster Reihe dem Anwender eine strukturierte Rückmeldung zum Status seiner Bemühungen geben. Sie sind kein Maßstab für das tatsächliche Wissen und Können der Anwender.
Kommunikation zwischen Web-Browser und eEx-Webserver
Der Browser fordert eine Aufgabe vom Webserver. Die Aufgabe wird vom Server gesendet. Nach dem Laden der HTML-Datei wird der JS-Code, der die Aufgabe erzeugt, ausgeführt. In einer Variable sollte der Zeitpunkt des Ladens gespeichert werden: var startTime = new Date().getTime(); Dieser Wert wird später benötigt um die Zeit zu berechnen, die der Anwender zum Lösen der Aufgabe gebraucht hat.
Übermitteln der Ergebnisse
Wenn der Anwender das Formular über die Submit-Schaltfläche absendet, kann das Ereignis onsubmit abgefangen werden. Die Lösung kann nun geprüft und angezeigt werden. Gleichzeitig sollte auch die Submit-Schaltfläche deaktiviert werden, damit ein erneutes Absenden verhindert wird.
Der Anwender wird nun gefragt ob das Ergebnis gespeichert werden soll. Diese Nachfrage ist wichtig, weil sie den Prinzipien von eEx entspricht: Der Anwender entscheidet selbst ob das erzielte Ergebnis gespeichert wird. Verneint der Anwender die Nachfrage, so ist der Vorgang abzubrechen.
Wenn der Anwender die Übermittlung der Ergebnisse wünscht, dann werden drei hidden-Felder mit den Ergebnissen befüllt und die Daten per post-Methode zum Server übermittelt.
<form name="result" id="frmData" action="speichern" method="post"><p> <input type="hidden" name="exerciseGUID" value="D653BF7A-83E2..." /> <input type="hidden" name="exerciseResult" value="0" /> <input type="hidden" name="exerciseTime" value="0" /> <input type="submit" value="Lösung senden" /> </p></form>
Folgende Werte müssen übertragen werden:
- exerciseGUID: entspricht der ID der Aufgabe. Diese kann per JS aus den Meta-Daten gelesen werden oder direkt im HTML-Code eingetragen sein.
- exerciseResult: eine Zahl zwischen 0 und 100 zeigt den prozentualen Teil der richtig gelösten Aufgabenteile und entspricht dem erzielten Ergebnis. Die Zahl wird in Ihrem JS-Code berechnet.
- exerciseTime: die verstrichene Zeit in Sekunden seit dem Laden oder
Neuladen der Aufgabe. Die Zeit wird als Differenz zwischen dem Senden
und der Startzeit ermittelt. Beispiel:
elapsedTime = Math.ceil((new Date().getTime() - startTime) / 1000);
eex.js und Autorensoftware
Mit der JS-Datei eex.js liefern wir Ihnen auch eine kleine JavaScript-Bibliothek, die viele Funktionen für eEx-Aufgaben zusammenfasst und so das Erstellen der Aufgaben erleichtert. Eine Beschreibung der Bibliothek finden Sie hier.
Nicht-Programmierer sollten sich unsere freien Autorensysteme ansehen, die zum Teil ganz ohne Programmierung auskommen. Andere verwenden einfache Skript-Sprachen.