Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

0 votes

Hallo zusammen!

Ich möchte in meiner Untersuchung gerne die Reaktionszeit bei der Beantwortung einzelner Fragen messen. Die Personen sollen auf einer Fragebogenseite eine Frage sehen, die sie auf einer Skala von 1-5 beantworten sollen und anschließend automatisch durch die Wahl einer Antwortoption auf die nächste Seite gelangen (habe ich in den Einstellungen der jeweiligen Frage so hinterlegt).

Ich habe zwar was zur Zeitmessung mittels JavaScript und interner Variable für die Verwendung des Weiter-Buttons gefunden (https://support.soscisurvey.de/?qa=13786/start-der-seitenverweildauer-zeitmessung) sowie zur Messung einzelner Fragen auf einer Seite (https://support.soscisurvey.de/?qa=31659/zeitmessung-einzelner-variablen-fragen), allerdings nicht zur Messung bei automatischer Weiterleitung.

Besteht vielleicht die Möglichkeit, im zweiten Teil des folgenden Codes etwas zu ändern, sodass nicht das Absenden, sondern die Beantwortung verwendet wird?

    var intVar = document.getElementById("IV01_01");
    var pageStart = new Date();
    var pageLoad = -1;
    window.addEventListener("load", function() {
      pageLoad = new Date();
    });
    SoSciTools.questionnaire.attachCheck(function() {
      var pageSend = new Date();
      intVar.value = pageSend.getTime() - pageLoad.getTime();
      return true;
    });

Vielen Dank im Voraus!

VG

in SoSci Survey (dt.) by s201123 (110 points)

1 Answer

0 votes

Die Anleitung zum LatencyTimer sollte Ihnen die Lösung deutlich vereinfachen. Bitte schauen Sie mal, ob Ihnen das weiterhilft?

by SoSci Survey (238k points)
Danke, ich bin schon etwas weiter gekommen. Ich habe nun folgenden Code verwendet:

<script type="text/javascript" src="../script/LatencyTimer.js"></script>
<script type="text/javascript">

window.addEventListener("load", function() {
    var timer = new LatencyTimer();
    for (var key in s2.AC18.items) {
        var item = s2.AC18.items[key];
        var itemID = item.id
        var internal = s2.IV01.item(item.id);
        timer.registerItem(item, internal, true);
    }
}
</script>


AC18 ist meine Skala (mit einem Item)
IV01 ist meine interne Variable, in der die Zeit gespeichert werden soll

Ich habe bei registerItem noch "true" ergänzt, da die Zeit nach dem Laden zum ersten Klick gezählt werden soll.

Allerdings erscheint die interne Variable nicht in meinem Datensatz... Steckt noch ein Fehler drin? Ich habe die interne Variable auf der Fragebogenseite über dem PHP- und HTML-Code platziert (PHP mit library('LatencyTimer'); ), darunter dann die AC18 Variable (meine Skala).
> Allerdings erscheint die interne Variable nicht in meinem Datensatz...

Haben Sie diesen denn im Fragenkatalog angelegt (mit ausreichend Items/Variablen) und in die Fragebogen-Seite gezogen? Vorzugsweise oberhalb des Codes. Und haben Sie mal einen Blick in die Fehlerkonsole im Browser geworfen?
Der Blick in die Fehlerkonsole hat zur Lösung geführt, herzlichen Dank!
...