0 votes
in SoSci Survey (dt.) by s245087 (185 points)

Ich führe eine Lesestudie durch, bei der die Versuchspersonen (VP) immer wieder während des Lesens zu ihren Gedanken befragt werden (siehe Experience Sampling innerhalb eines Fragebogens. Hierzu verwende ich einen Timer, der nach Ablauf einer zufälligen Zeit mittels multiLevelDown() vom zu lesenden Text in einen untergeordneten Fragebogen springt, wo die Befragungen zu den Gedanken stattfinden.

Das ganze funktioniert grundsätzlich so wie gedacht, allerdings müssen die VP den Text nicht am Stück lesen. Sie können unterbrechen und zu einem späteren Zeitpunkt weitermachen, indem sie wiederholt auf den Link der Serienmail klicken, mit der sie zur Studie eingeladen wurden (ist so im Fragebogen eingestellt). Während einer Unterbrechung durch die VP läuft der Timer aber weiter und die VP kommt daher zwangsläufig fast immer bei erneutem Aufruf des Links auf den untergeordneten Fragebogen.

Technisch ist das zwar kein Problem, aber es ergibt inhaltlich keinen Sinn. Der Timer sollte entweder gestoppt werden können, wenn die VP das Fenster schließt und unterbricht, oder es sollte im untergeordneten Fragebogen automatisch wieder ein multiLevelReturn() stattfinden, wenn dieser nach einer Unterbrechung aufgerufen wurde.

Gibt es hier eine einfache und robuste Lösung?

1 Answer

0 votes
by SoSci Survey (327k points)
selected by s245087
 
Best answer

Eine wirklich akkurate Lösung wäre ein wenig aufwändiger - dafür müsste der Fragebogen regelmäßig an den Server mitteilen, ob die Person den Tab noch offen hat. Das ließe sich mit einer internen Variable realisieren, für die eine automatische Übermittlung im Hintergrund eingestellt ist, und in welche Sie regelmäßig die vergangene Zeit schreiben. Wenn das JavaScript sich die Zeit zugleich aus dieser Variable holt, ist das mit dem erneuten Laden kein Problem mehr.

Die weniger akkurate Lösung wäre, dass Sie die Prüfung modifizieren, ob die Zeit abgelaufen ist. Dort bilden Sie vermutlich eine Differenz und prüfen, ob diese kleiner 0 ist. Wenn Sie dort einen Wert deutlich kleiner 0 finden (also z.B. < -60000), dann würden Sie den Timer bzw. dessen Referenzwert einfach zurücksetzen. Damit sollten Sie die allermeisten Unterbrechungen korrekt abgefangen haben.

by s245087 (185 points)
Ich denke, die zweite Lösung wird reichen. Vielen Dank.

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

...