In einem Fragebogen müssen Keystrokes der Teilnehmenden gespeichert werden. Hierfür verwende ich bisher folgendes Script und hatte hierfür zuvor die interne Variable A402_01 verwendet, um die Arrays zu loggen:
<script>
class KeystrokeLogger {
constructor(outputId) {
this.events = [];
this.outputEl = document.getElementById(outputId);
this.handleKey = this.handleKey.bind(this);
}
start() {
document.addEventListener('keydown', this.handleKey);
document.addEventListener('keyup', this.handleKey);
}
stop() {
document.removeEventListener('keydown', this.handleKey);
document.removeEventListener('keyup', this.handleKey);
}
handleKey(e) {
if (e.repeat) return;
this.events.push({
type: e.type,
key: e.key,
code: e.code,
ts: e.timeStamp
});
this.scheduleOutput();
}
scheduleOutput() {
if (this.outputPending) return;
this.outputPending = true;
requestIdleCallback(() => {
if (this.outputEl) {
this.outputEl.value = JSON.stringify(this.events);
}
this.outputPending = false;
});
}
clear() {
this.events = [];
if (this.outputEl) this.outputEl.value = '';
}
}
const keystrokelogger = new KeystrokeLogger('A402_01');
keystrokelogger.start();
</script>
Dieses Format sprengt nun natürlich schnell das 64 KB limit. In anderen Forumbeiträge hatte ich bereits gesehen, dass der Fragetyp "Datei-Inhalte übertragen" verwendet werden sollte. Leider finde ich jedoch keine Dokumentation zur Funktionsweise dieses Fragetypens. Könnten Sie mir freundlicherweise zeigen, wie ich dieses Script zusammen mit dem Fragetypen nutzen kann?
Alternativ gäbe es vielleicht noch die Möglichkeit das 64 KB Limit auf unserem privat-gehosteten Server anzuheben? Jedoch habe ich in der Serververwaltung keine Einstellung hierfür gefunden.
Danke und herzliche Grüße