Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:javascript:latencytimer [03.05.2022 09:01] l.toernerde:create:javascript:latencytimer [03.03.2026 21:27] (aktuell) admin
Zeile 53: Zeile 53:
  
 Die Methode ''eventHandler()'' liefert eine Funktion, welche direkt in ''Element.addEventListener()'' verwendet werden kann. So können auch Reaktionszeiten für Ereignisse gespeichert werden, die keine Klicks sind. Die Methode ''eventHandler()'' liefert eine Funktion, welche direkt in ''Element.addEventListener()'' verwendet werden kann. So können auch Reaktionszeiten für Ereignisse gespeichert werden, die keine Klicks sind.
 +
 +''Function **latencyTimer.createItem**(mixed //storage//, boolean //storeFirst//, mixed //multiStore//)''
 +
 +Die Methode ''createItem()'' liefert ein Objekt, welches mittels ''registerEvent()'' die Zeit bis zu einem Ereignis aufzeichnet.
  
  
Zeile 96: Zeile 100:
 window.addEventListener("load", function() { window.addEventListener("load", function() {
     var timer = new LatencyTimer();     var timer = new LatencyTimer();
-    for (var key in s2.SK01.items) { +    for (var i=1; i<=s2.SK01.items.length; i++) { 
-        var item = s2.SK01.items[key]; +        var item = s2.SK01.item(i)
-        var itemID = item.id +        var internal = s2.IV01.item(i); 
-        var internal = s2.IV01.item(item.id); +        timer.registerItem(item, internal, true);
-        timer.registerItem(item, internal);+
     }     }
-}+});
 </code> </code>
 +
  
  
Zeile 169: Zeile 173:
 window.addEventListener("load", function() { window.addEventListener("load", function() {
     var timer = new LatencyTimer();     var timer = new LatencyTimer();
-    for (var key in s2.OT01.items) { +    for (var i=1; i<=s2.OT01.items.length; i++) { 
-        var item = s2.OT01.items[key]; +        var item = s2.OT01.item(i)
-        var itemID = item.id+        var internalA = s2.IV01.item(i); 
-        var internalA = s2.IV01.item(itemID); +        var internalB = s2.IV02.item(i);
-        var internalB = s2.IV02.item(itemID);+
         item.input.addEventListener(         item.input.addEventListener(
             "keydown",             "keydown",
Zeile 179: Zeile 182:
         );         );
     }     }
 +});
 +</code>
 +
 +Das Abschicken der aktuellen Seite im Fragebogen kann zum Beispiel über das ''submit''-Event des Formulars erfasst werden. In Verbindung mit ''latencyTimer.eventHandler()'' erfasst folgendes Script die Zeit vom (vollständigen) Laden der Seite bis zum Abschicken, und speichert diese Zeit in die interne Variable "IV01_01" (diese muss natürlich auf die Fragebogen-Seite gezogen werden).
 +
 +<code javascript>
 +window.addEventListener("load", function() {
 +    var timer = new LatencyTimer();
 +    var qnrForm = document.getElementById("questionnaireForm");
 +    qnrForm.addEventListener("submit", timer.eventHandler("IV01_01", true));
 +});
 +</code>
 +
 +
 +==== Manuelle Aufzeichnung ====
 +
 +Sie können über ''createItem()'' ein Objekt erzeugen, welches nur die Methode ''registerEvent()'' kennt, und gezielt über andere Events angesteuert werden kann.
 +
 +<code javascript>
 +let timer = new LatencyTimer();
 +let registerA = timer.createItem("IV01_01", true);
 +let registerB = timer.createItem("IV01_02", true);
 +let registerC = timer.createItem("IV01_03", true);
 +
 +document.getElementById("buttonA", function(evt) {
 +  doSomething();
 +  registerA.registerEvent(evt);
 }); });
  
 +...
 </code> </code>
de/create/javascript/latencytimer.1651561285.txt.gz · Zuletzt geändert: von l.toerner
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki