0 votes
in SoSci Survey (dt.) by s093836 (145 points)

Sehr geehrte Damen und Herren,

ich arbeite gerade an meiner Masterarbeitsstudie und möchte 80 Cued Recall Fragen über Loop präsentieren. Zunächst hatte ich die 80 Cued Recall-Fragen (F100_01-F180_01) in einer Loop-Schleife und das hat alles grob funktioniert, außer, dass die Studie wegen Überschreitung der 5s Verarbeitungsdauer immer abgebrochen ist. Ich habe danach 8 Loop-Schleifen angelegt mit je 10 Fragen. Im folgenden schreibe ich den Code für die zweite Loop-Schleife

Seite 1

loopToPage('fcrend2', 10); // Loop 10 times through the following pages till loopend

// Set up the questions for the following pages for each of the 10 word pairs
$fcrloop2 = array(
  0 => array('F111_01'),
  1 => array('F112_01'),
  2 => array('F113_01'),
  3 => array('F114_01'),
  4 => array('F115_01'),
  5 => array('F116_01'),
  6 => array('F117_01'),
  7 => array('F118_01'),
  8 => array('F119_01'),
  9 => array('F120_01')
);

registerVariable($fcrloop2);

Seite 2

// Get current loop number
$mb = loopIndex();

// Get the set of questions associated with the current loop number
$quest = $fcrloop2[$mb];

// Show the question
question($quest[0]);

Seite 3

// Get current loop number
$mb = loopIndex();

Mein Problem ist Folgendes:
Ab der zweiten Loop-Schleife startet die Reihenfolge nicht bei 0 sondern bei 9. 0 wird übersprungen und 9 wird am Anfang und am Ende der Loop-Schleife gezeigt, also doppelt.

Ich finde es schwer das Problem zu beschreiben und bin auch ein absoluter Anfänger im Programmieren, darum hier nochmals mit anderen Worten:

Bis zur Präsentation von F110 klappt alles

Dann beginnt die zweite Schleife:
Diese beginnt und endet mit F120 --> F111 wird nicht angezeigt

Dann beginnt die dritte Schleife:
Diese beginnt und endet mit F130 --> F121 wird nicht angezeigt

$icrloop2 = array(
    0 => array('F111_01'), // --> wird übersprungen
    1 => array('F112_01'),
    2 => array('F113_01'),
    3 => array('F114_01'),
    4 => array('F115_01'),
    5 => array('F116_01'),
    6 => array('F117_01'),
    7 => array('F118_01'),
    8 => array('F119_01'),
    9 => array('F120_01') //  --> wird am Anfang und am Ende der Schleife angezeigt
);

Ich hoffe ich konnte meine Frage verständlich ausdrücken.
Für Ihre Hilfe wäre ich sehr dankbar. Bis dahin wünsche ich Ihnen ein schönes Wochenende.

by SoSci Survey (327k points)
>  außer, dass die Studie wegen Überschreitung der 5s Verarbeitungsdauer immer abgebrochen ist

Fangen wir doch einmal damit an .... um 5 Sekunden zu überschreiten, muss schon einiges gerechnet werden. Ich sehe spontan nichts, was in Ihrem Code groß rechnet.

> Ich hoffe ich konnte meine Frage verständlich ausdrücken.

Schon, aber ich bräuchte zur Orientierung noch mehr Infos. Insbesondere haben Sie ja bei der zweiten und dritten Schleife noch mehr PHP-Code. Könnten Sie diesen bitte in Ihrer Frage noch ergänzen.

Und bitte lesen aus aus dem loopToPage() noch das Ergebnis aus uns lassen Sie es ausgeben, z.B.

$i = loopToPage('fcrend2', 10);
debug($i);

Und dasselbe für den loopIndex(), also z.B.

$mb = loopIndex();
debug($mb);

Und dann müssten Sie bitte berichten, ob da ab der zweiten und dritten Schleife etwas anderes als 0 in der ersten Weiderholung kommt.

Wichtig auch: Arbeiten Sie irgendwo mit isset() oder registerVariable() ?
by s093836 (145 points)
Vielen Dank für Ihre Antwort,

In der folgenden Antwort, habe ich Ihnen den PHP Code der ersten drei Schleifen ergänzt.

1 Answer

0 votes
by s093836 (145 points)

Vielen Dank für die schnelle Antwort,

meine Betreuerin hat mich sehr bei der Programmierung der Studie unterstützt. Wir haben mit vielen Platzhaltern gearbeitet und häufig randomisiert, was vielleicht der Grund für die 5s Rechnungszeit war. Durch die Aufteilung der Listen hatten wir dieses Problem gelöst, dafür haben wir jetzt das Problem mit der Wiederholung.

Im Folgenden schicke ich Ihnen den vollständigen PHP-Code der ersten 3 Schleifen.

1. Loop-Schleife, 1. Seite

$da =loopToPage('fcrend1', 10); // Loop 10 times through the following pages till loopend
debug($da);

    // Set up the questions for the following pages for each of the 10 word pairs
    $fcrloop1 = array(
      0 => array('F101_01'),
      1 => array('F102_01'),
      2 => array('F103_01'),
      3 => array('F104_01'),
      4 => array('F105_01'),
      5 => array('F106_01'),
      6 => array('F107_01'),
      7 => array('F108_01'),
      8 => array('F109_01'),
      9 => array('F110_01')
    );
    
    registerVariable($fcrloop1);

1. Schleife, 2. Seite

// Get current loop number
$ma = loopIndex();
debug($ma);

// Get the set of questions associated with the current loop number
$db = $quest = $fcrloop1[$ma];
debug($db);

// Show question
$dc= question($quest[0]);
debug($dc);

1. Schleife, 3. Seite

// Get current loop number
$ma = loopIndex();
debug($ma);

2. Schleife, 1. Seite

$z = loopToPage('fcrend2', 10); // Loop 10 times through the following pages till loopend
debug($z);

// Set up the questions for the following pages for each of the 10 word pairs
$fcrloop2 = array(
  0 => array('F111_01'),
  1 => array('F112_01'),
  2 => array('F113_01'),
  3 => array('F114_01'),
  4 => array('F115_01'),
  5 => array('F116_01'),
  6 => array('F117_01'),
  7 => array('F118_01'),
  8 => array('F119_01'),
  9 => array('F120_01')
);

registerVariable($fcrloop2);

2. Schleife, 2. Seite

// Get current loop number
$mb = loopIndex();
debug($mb);

// Get the set of questions associated with the current loop number
$quest = $fcrloop2[$mb];

// Show  question
question($quest[0]);

2. Schleife, 3. Seite

// Get current loop number
$mb = loopIndex();
debug($mb);

3. Schleife, 1. Seite

$l=loopToPage('fcrend3', 10); // Loop 10 times through the following pages till loopend
debug($l);

// Set up the questions for the following pages for each of the 10 word pairs
$fcrloop3 = array(
  0 => array('F121_01'),
  1 => array('F122_01'),
  2 => array('F123_01'),
  3 => array('F124_01'),
  4 => array('F125_01'),
  5 => array('F126_01'),
  6 => array('F127_01'),
  7 => array('F128_01'),
  8 => array('F129_01'),
  9 => array('F130_01')
);

registerVariable($fcrloop3);

3. Schleife, 2. Seite

// Get current loop number
$mc = loopIndex();
debug($mc);

// Get the set of questions associated with the current loop number
$quest = $fcrloop3[$mc];

// Show question
question($quest[0]);

3. Schleife, 3. Seite

// Get current loop number
$mc = loopIndex();
debug($mc);

Wie Sie sehen, habe ich in allen drei Schleifen praktisch den gleichen PHP-Code. Außer das ich Variablen anders benannt habe. Fehlt vielleicht Code?

Ich habe mir die Ergebnisse aus dem loopToPage () und dem loopindex() aulesen lassen und wie vermutet wird die 0. Zeile in der Schleife übersprungen.

Die Ergebnisse von loopToPage () und dem loopindex() beinhalten immer die gleichen Zahlen in allen Wiederholungen aller Schleifen außer dem ersten Durchgang ab der zweiten Schleife.

In jedem ersten Durchgang der zweiten, dritten, vierten usw. Schleife beginnt der loopToPage () wie gewünscht bei 0 aber der loopindex() bei 9, was die Wiederholung des letzten Items erklärt.
Danach läuft alles wie gewünscht.
loopToPage () 1 aber und der loopindex() 1.
loopToPage () 2 aber
und der loopindex() 2.
loopToPage () 3 aber und der loopindex() 3.
...
loopToPage () 9 aber
und der loopindex() 9.

(Ich habe einiges herumprobiert, ob ich das array umbennen kann und wenn ich es mit 9 starte, dann wird das 1. Item der Schleife auch angezeigt aber dann komme ich am Ende der Schelife nicht hin und außerdem dachte ich, man beginnt Arrays immer mit 0.) Bisher habe ich noch keine Lösung gefunden aber der Tipp mit debug () war schonmal sehr hilfreich.

Ich verwende registerVariable() zu Speicherung von Arrays aber im Rahmen dises PHP Codes sonst nicht. isset() habe ich soeben auf allen Seiten hinzugefügt.

Vielen Dank für ihre Hilfe und liebe Grüße

by SoSci Survey (327k points)
> isset() habe ich soeben auf allen Seiten hinzugefügt.

Das war so nicht gemeint ... ich wollte eher darauf hinaus, dass ein isset() an der falschen Stelle schon öfters zu Problemen geführt hat. Bitte lesen Sie einmal in der Anleitung nach, was es mit isset() auf sich hat - und entfernen Sie den Befehl, wo er nicht benötigt wird :)

Um die eigentliche Frage kümmere ich mich nachher noch.
by s093836 (145 points)
Vielen Dank für Ihre Erläuterung,
ich habe meine eingefügten Isset() -Befehle nun wieder entfernt.
In der Studie kommt dieser Befehl nun noch 5 mal vor:
-Einmal zum Zeitstoppen
-Viermal  im Rahmen von der Speicherung des Bearbeitungszeitpunktes der Studie
by SoSci Survey (327k points)
Danke für die Geduld, nun hat es doch etwas länger gedauert.

> In jedem ersten Durchgang der zweiten, dritten, vierten usw. Schleife beginnt der loopToPage() wie gewünscht bei 0 aber der loopindex() bei 9

Das klingt nach einem Programmfehler - aber ich habe versucht, es zu replizieren und dort funktionierte alles korrekt.

Daher habe ich statt einer Antwort nur einen Workaround und eine Frage.

1) Der Workaround funktioniert dann, wenn Sie keinen Zurück-Knopf erlauben. Und zwar können Sie das Ergebnis von loopToPage() dann einfach in eine Variable schreiben und diese für die nächsten Seiren nutzbar machen.

$ix = loopToPage('fcrend3', 10);
registerVariable($ix);

Das $ix können Sie dann einfach auf allen folgenden Seiten verwenden.

2) Die Frage ist, ob ich mir das Ganze einmal "live" ansehen darf und soll? Wenn Sie damit einverstanden wären, teilen Sie mir bitte den Namen des Projekts und des Fragebogens (falls Sie mehrere haben) mit. Ich würde dann eine Administrator-Freigabe für das Projekt einrichten und mich dort direkt einloggen.
by s093836 (145 points)
Vielen Dank für Ihre Antwort,

ich habe das Workaround ausprobiert aber leider habe ich das Problem immer noch. Ich wäre Ihnen deswegen dankbar, wenn Sie sich das Projekt ansehen könnten. Es heißt "Schlaf eine Nacht drüber" und das Problem tritt beim "Main Questionaire" auf.
Können mehrere Personen parallel am Code arbeiten oder sollte ich nicht an der Studie arbeiten, wenn Sie daran arbeiten? Falls letzteres zutrifft, wäre ich Ihnen dankbar, wenn Sie mir mitteilen würden, wann ich wieder an der Studie arbeiten kann.

Das Experiment umfasst zwei Cued Recall, bei beiden tritt bei mir das Problem auf ( 1. --> S. 66 - 99; 2. --> S. 148 -173).

Sie haben ja nach den isset() Befehlen gefragt, diese haben wir auf den folgenden Seiten:
Seite 4
Seite 6   
Seite 141
Seite 143
Seite 146

Das Problem tritt außerdem anscheinend bei meiner Betreuerin nicht auf, wenn sie die Studie testet. Kann das Problem vielleicht außerhalb von SociSurvey liegen, so etwas wie JavaScript nicht erlaubt oder so (daran spezifisch liegt es nicht, dass habe ich schon überprüft, aber vielleicht etwas ähnliches).

Vielen Dank für Ihre Hilfe!
by SoSci Survey (327k points)
Auf Seite 67 ... bitte sehen sich unbedingt (!) mal Schleifen an - also FOR und FOREACH. Damit könnten Sie diesen Code auf ein Viertel kürzen. Und kürzerer Code verbirgt weniger Fehler!

Im Moment stolpere mich darüber, dass die Variable $pairsNegative nicht initialisiert ist. Ich vermute, da fehlt ein registerVariable() auf Seite 9.
by s093836 (145 points)
Ok, das sehe ich mir gleich an. Danke.

Auf Seite 9 gibt es den Befehl registerVariable($pairsNegative);
Könnte es einen anderen Grund geben, warum  $pairsNegative nicht initialisiert ist?

Tritt das beschriebene Problem eigentlich bei Ihnen auch auf?

Liebe Grüße
by SoSci Survey (327k points)
Soweit war ich noch nicht ... ich hatte ja noch die Fehlermeldung :) Aber vermutlich hatte ich Seite 9 aus Versehen übersprungen.

Was mir als nächstes auffällt: Wenn Sie mit Loops arbeiten, dann vermeiden Sie bitte Seiten, die keinen Inhalt zeigen innerhalb des Loops. Das verursacht in jedem Loop-Durchlauf viel Speicherbedarf und führte in der Vergangenheit schon zu Abbrüchen der Interviews mit Fehlermeldung.

Wann immer die Debug-Informationen also zeigen (z.B. Seite 68):

> Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. ...

... dann sollten Sie das ändern.

Das Problem kann ich nur teilweise nachvollziehen. Bei der ersten Runde im zweiten Loop sehe ich für loopIndex() eine 9 - aber ab der nächsten Wiederholung passt es, da kommt dann eine 1.

Ich gehe stark davon aus, dass das mit dem Problem der leeren Seiten zusammenhängt. Und zwar wird aus technischer Sicht die leere Seite (aus dem vorigen Loop) gemeinsam mit der ersten Seite des neuen Loop angezeigt. Daher ist noch der alte loopIndex() aktiv.

Lösung also: Leere Seite beseitigen. Da Sie eigentlich immer nur eine Seite wiederholen, brauchen Sie dann vermutlich am Ende auch nur ein loopPage() und gar kein loopIndex() mehr.
by s093836 (145 points)
>Das Problem kann ich nur teilweise nachvollziehen. Bei der ersten Runde im zweiten Loop sehe ich für loopIndex() eine 9 - aber ab der nächsten Wiederholung passt es, da kommt dann eine 1.

Genau, das Problem tritt jeweils nur in jeder ersten Runde ab dem zweiten Loop auf. Der LoopIndex() 9 wird am Anfang und am Ende des Loops ausgegeben, der LoopIndex () 0 wird ab dem zweiten Loop übersprungen.  Zwischendurch klappt alles. Dadurch wird aber eine Cued Recall Frage übersprungen und eine zweimal angezeigt.

Ok, dann beseitige ich mal die leeren Seiten.

Danke :)
by s093836 (145 points)
Ich habe noch eine Frage:

Kann ich parallel zu Ihnen an der Studie speziell am Code arbeiten oder bringt das Probleme?

Liebe Grüße
by SoSci Survey (327k points)
Ich versuche, in fremden Fragebögen möglichst nichts zu ändern - vielleicht mal ein debug() hier oder da. Insofern können Sie gerne jederzeit am Projekt arbeiten.
by s093836 (145 points)
Das war die Lösung! :D
Habe nun alle Loops auf eine Seite gekürzt und nun funktioniert es.
Ich werden auch noch die Präsentations-Loops verändern um "leere" Seiten zu vermeiden.

Vielen Dank für Ihre Hilfe :)
by s093836 (145 points)
Hallo nochmal,

ich habe ein neues Problem und zwar kann ich plötzlich im Debug-Modus nicht einfach zu den Seiten springen, die ich gerne testen möchte, sondern werde zu anderen Seiten geleitet. Z.B. Wenn ich den Fragebogen von Beginn starte und dann Seite 111 auswähle, werde ich zu Seite 69 geleitet. Können Sie sich das erklären?

Ich wäre Ihnen sehr dankbar, wenn Sie mir nochmals helfen könnten.
by SoSci Survey (327k points)
Was sagt denn die Debug-Information?

Ich habe einmal den Server-Cache geleert, um einen veralteten Cache-Eintrag als mögliche Ursache auszuschließen.
by s093836 (145 points)
Danke für Ihre schnelle Antwort.
Leider habe ich das Problem immer noch. Ich denke es beeinflusst nicht die Durchführung der Studie, sondern erschwert lediglich das Testen der Studie.
Zu manchen Abschnitten kann ich noch springen, z.B. zum Free Recall. Ab da kann ich die Studie auch testen und alles läuft seinen Gang. Ich springe also nicht im Fragebogen zurück.
Aber ich kann nicht einfach nur die Studie starten und das letzte Rating anklicken und testen, weil ich dann immer auf Seiten am Anfang des Fragebogens geleitet werden (immer die gleichen Seiten in Abhängigkeit davon, wo ich gerne den Test starten möchte). Davor konnte ich an beliebigen Stellen des Fragebogens meinen Test starten.
Eine hilfreiche Debug-Information bekomme ich leider nicht angezeigt, da ich, wenn ich beispielsweise starte und dann auf Seite 111 klicke, direkt zu Seite 69 komme und nur die Debug-Informationen dieser Seite angezeigt bekomme. Die sagen mir aber leider nicht, warum ich immer auf die Seite zurückspringe.
by SoSci Survey (327k points)
Hmmm ... seltsam. Sind Sie unter "Fragebogen zusammenstellen" auf die Seite gegangen und haben Sie dann dort den Knopf zum Starten geklickt oder haben Sie erst gestartet und sind dann über die gelbe Leiste oben (nicht) auf die gewünschte Seite gekommen?
by s093836 (145 points)
Genau, ich bin auf Fragebogen zusammenstellen gegangen und haben mit dem oberen gelben Knopf den Fragebogen im Debug-Modus gestartet.
Dann wollte ich über die gelbe Leiste auf die gewünschte Seite kommen, was bisher immer geklappt hatte, aber jetzt leider nicht mehr.
Wenn ich den unteren gelben Knop drücke, also ab der jeweiligen Seite den Debug-Modus starte, klappt alles. Allerdings ist das für das Testen meiner Studie unpraktisch, da die Wortlisten dann nicht erstellt werden und meine Platzhalter nicht gefüllt sind, was das Testen von der Seite an etwas sinnlos macht.

Ich wünsche Ihnen ein schönes Wochenende. Liebe Grüße.
by SoSci Survey (327k points)
Ich sehe mir das nochmal an ... mein Zugang zu Ihrem Projekt ist ja noch aktiv :)
by s093836 (145 points)
Vielen Dank :)
Ich hoffe ich habe keinen dummen Fehler gemacht, auf den ich auch selbst hätte kommen können.
by SoSci Survey (327k points)
Gut, die Lösung war nicht ganz trivial ... also gute und schlechte Nachricht zugleich: Es ist ein Programmfehler.

Auslöser ist, dass Sie Ihren Seiten Kennungen gegeben haben. Und SoSci Survey sucht die Seite nach der Kennung heraus - wenn es keine Kennung findet, dann verwendet es die Seitennummer. Nun ist die Kennung 116 für die Seite Nr. 69 eingetragen.

Sie können aber in das Feld über der Auswahl einfach "RI" eintragen, um zur gewünschten Seite 111 zu kommen. Ich nehme das mal auf die Liste zu korrigierender Fehler in einer der nächsten Versionen.
by s093836 (145 points)
Vielen Dank für Ihre Antwort,

das ist ja dann kein Problem für mich. Ich kann ja die Kennungen ändern, wo es mich stört. Und dann hat es ja auch wirklich keinen Einfluss auf die Studiendurchführung. :)
by s093836 (145 points)
Ich würde Sie gerne nochmal um Rat bitten, da Sie meine Studie schon kennen.
Bei einem Face-to-Face-Pretest kam nun die folgende Fehlermeldung:

Mit dem Eintrag … wurden durch die Zusatzdaten in diesem  Interview die Grenze von 64 KB überschritten. Der Wert … kann daher nicht gespeichert werden.
 
Ich habe im Forum gelesen, dass sowohl LooptoPage-Schleifen, als auch viele Platzhalter, die Ursache für dieses Problem sein könnten. Ich habe ja von beiden Problem-Quellen sehr viel in meiner Studie aber weiß auch nicht, wie ich darauf verzichten soll.
Könnten Sie mir einen Rat geben, wie ich am Besten mein neustes Problem lösen kann?
by SoSci Survey (327k points)
Was das bevor oder nachdem Sie die leeren Seite in den Loops entfernt hatten?

Dieses Problem tritt traditionell genau im Zusammenhang mit solchen leeren Seiten auf.
by s093836 (145 points)
Vielen Dank für die schnelle Antwort.

Es ist aufgetreten, nachdem ich die leeren Seiten entfernt hatte. Meine Betreuerin hatte jedoch danach wieder welche eingefügt, nachdem ich sie um Hilfe bei dem internen Lernkriterium gebeten habe. Nun habe ich diese wieder entfernt und bisher ist die Fehlermeldung nicht nochmal aufgetreten :) Ich würde mich nochmal melden, falls sie doch nochmal auftritt.

Vielen Dank für Ihre Hilfe.
by s093836 (145 points)
Hallo,

ich hoffe es stört Sie nicht, dass ich mich immer wieder an Sie wende und keine neuen Fragen erstelle aber Sie kennen meine Studie nun mittlerweile schon so gut und deswegen denke ich, dass macht es alles einfacher.

Ich hatte bisher nicht nochmal das Problem mit dem Speicherplatz Mittlerweile habe ich meine Studie online gestellt um auch die Serienmail-Funktion durchzutesten. Nun habe ich gerade mal wieder alles durchgetestet und es ist ein neues Problem aufgetaucht. Beim letzten Ratingdurchgang (Seitenname: RI) hat sich die Loopschleife plötzlich aufgehängt. Es wurde für eine halbe Stunde immer wieder das gleiche Wort angezeigt. Ich habe der Weile im Code gesucht aber nichts gefunden.

Ist das ein Fehler, der einfach auftreten kann? Denn manchmal hängen sich elektrische Geräte ja auch einfach auf oder ist das ein Problem, dass man beheben kann?

Vielen Dank und liebe Grüße.
by SoSci Survey (327k points)
> Beim letzten Ratingdurchgang (Seitenname: RI) hat sich die Loopschleife plötzlich aufgehängt. Es wurde für eine halbe Stunde immer wieder das gleiche Wort angezeigt.

Das ist ... interessant. Die haben nicht zufällig die Debug-Information offen gehabt, oder?

Meine Vermutung wäre folgende: In der Seite war ein Fehler im HTML-Code (z.B. weil irgendwo ein Fehler im Stimulus -HTML war) und deshalb wurde die Antwort zur Seite nicht korrekt übermittelt. Wenn dem so wäre, dann würden die Antworten nicht eingelesen und dieselbe Seite würde nochmal vorgelegt.

Wie gesagt: Das ist im Moment nur eine Hypothese. In der Debug-Information würde man entsprechende Warnungen sehen, dass keine Seite eingelesen wurde.
by s093836 (145 points)
Ihre Hypothese war richtig.
Ich habe es nochmal im Debug-Modus getestet und da gab es doch einen Fehler im HTML-Code. Weiß auch nicht, wie ich das übersehen konnte. Den Fehler habe ich behoben und die Studie nochmal getestet und jetzt lief es durch.

Vielen Dank, Sie sind ein toller Support.
by s093836 (145 points)
Hallo,

ich bin es nochmal.
leider ist das Problem mit der Dauerschleife nun doch nochmal aufgetreten. Es war wieder beim letzten Ratingdurchgang, genauer in der 5. Loopschleife. Diesmal wurde eine weiße Seite immer wieder angezeigt. Ich hatte zwischendurch aber auch schon Testdurchgänge gehabt, bei denen ich die Studie problemlos durchtesten konnte. Deswegen dachte ich, das Problem wäre behoben. Im Debug-Modus werden keine Informationen angezeigt.
Könnten Sie mir bitte nochmal helfen?

Freundliche Grüße.
by SoSci Survey (327k points)
Können Sie das Problem replizieren? Wenn nicht, dann wird die Fehlersuche nämlich sehr schwierig...
by s093836 (145 points)
Also ich habe die Studie jetzt noch zweimal durchgetestet:

Einmal mit Lernwiederholung, einmal ohne. Die Versuchspersonen müssen in meiner Studie Wortpaare lernen. Wenn sie beim Cued Recall Test im ersten Studienabschnitt weniger als 35% erinnern, bekommen sie die Wörter nochmals präsentiert. Dann gibt es also eine Lernwiederholung.
Gestern als die Dauerschleife aufgetreten ist, hatte ich einen Testdurchgang mit Lernwiederholung gemacht.

Heute habe ich nochmal ein Testdurchgang mit Lernwiederholung gemacht. Die Endlosschleife ist wieder an der gleichen Stelle aufgetreten und zwar im 4. Loop des letzten Ratings nach Präsentation des 4 Wortes (Loop beginnend auf S. 121 des Hauptfragebogens).

Jetzt kommt der Haken. Bei dem Testdurchgang ohne Lernwiederholung lief die Studie problemlos durch und es gab keine Endlosschleife.

Können Sie sich das erklären?

Liebe Grüße.
by SoSci Survey (327k points)
Nun, das kann Zufalls sein - aber wenn es replizierbar ist, dann macht es die Problembehebung deutlich einfacher. Welcher PHP-Code ist denn auf der entsprechenden Seite und (noch wichtiger) was sagt die Debug-Information, wenn Sie im Loop feststecken?

Sie können über Erhobene Daten -> Daten ansehen übriges nochmal in das betroffene Interview springen (sofern Sie es im Modus "admin" oder "debug" gestartet haben). Dann brauchen Sie nicht alles nochmal ausfüllen.
by s093836 (145 points)
Danke für ihre schnelle Antwort.
Das man in ein betroffenes Interview wieder springen kann, ist gut zu wissen. Ich habe das Interview leider über den Link gestartet, da im Debug-Modus nie etwas angezeigt wurde. Aber das lag vielleicht daran, dass ich meistens ohne Lernwiederholung getestet habe. Ich muss mich also nochmal durchklicken.
by SoSci Survey (327k points)
Vielleicht ergibt sich die Lösung dann ohnehin schon aus den Debug-Informationen. Wenn nicht, posten Sie gerne den Interview-Link. Da man im Loop "festhängt" sollte ich dann ja gleich auf die richtige Seite kommen :)
by s093836 (145 points)
https://www.soscisurvey.de/Frisch_gewagt_ist_halb_gewonnen/index.php?i=E0S3KMUFVJP9&rnd=SPOB

Also das ist der Link von dem Interview, das ich gerade im Debug-Modus durchgeklickt habe. Meinten Sie den? Im Debug-Modus wurde leider keine Fehlermeldung angezeigt, sodass ich das Problem selber hätte beheben können. Außerdem ist diesmal die Endlosschleife schon bei dem 44. Wortpaar des zweiten Ratingdurchgangs hängengeblieben und nicht erst bei der Seite danach, wie bei den Testdurchgängen zuvor.

Vielen Dank für Ihre Hilfe.
by SoSci Survey (327k points)
reshown by SoSci Survey
Danke für den Link - ich denke, damit kann ich arbeiten. Geben Sie mir bitte 1-2 Tage, um das Problem aufzuklären.
by SoSci Survey (327k points)
So, nach eingehender Prüfung der internen Daten des Interviews könnte ich die Ursache finden. Und zwar reicht der Speicher nicht aus, um die komplette Seitenabfolge zu speichern.

Konkret sind es bis zu der Stelle mit der Dauerschleife 1009 Einzelseiten, die angezeigt werden. Da für jede Seite eine Menge Informationen gespeichert werden, weigert sich SoSci Survey hier, noch mehr Daten zu speichern. Weshalb hier keine Fehlermeldung gezeigt wird, muss ich noch herausfinden...

Mit verantwortlich für das Problem: Auf Seite 47 oder 48 startet ein Loop. In diesem werden noch leere Seiten übersprungen.

Ebenfalls mit verantwortlich: Sie speichern größere Datenmengen mittels registerVariable().

Vermutlich wird das Entfernen der leeren Seite in dem Loop um Seite 46 das Problem lösen. Ob es dann bis zur letzten Seite reicht, kann ich nicht sagen.

Darüber gibt es noch eine Funktion dropHistory() - damit könnten Sie die lange Seiten-Histore zwischendurch einmal kappen. Dann ist zwar kein "Zurück"-Knopf auf der Seite mehr möglich, aber ich denke, das stört Sie nicht.

Meines Erachtens sollten Sie aber auch nochmal gründlich prüfen, ob man einen Fragebogen dieser Länge wirklich am Stück beantworten kann - oder ob man das nicht besser auf zwei Sitzungen aufteilt.
by s093836 (145 points)
Vielen vielen Dank für Ihre Hilfe.

Ich habe die leeren Seiten bei dem Loop auf Seite 47 entfernt, die hatte ich leider übersehen. Die Studie hängt sich leider immer noch auf.

Ich würde nun gerne noch die dropHistory()-Funktion versuchen, habe aber leider keine Einträge dazu im Handbuch oder beim Support gefunden. Haben Sie da vielleicht einen Tipp?

Wenn das immer noch nicht klappen sollte, muss ich vielleicht das interne Lernkriterium aus der Studie entfernen.

Ich stimme Ihnen zu, dass der Fragebogen insgesamt sehr lang ist. Allerdings ist er bereits auf zwei Sitzungen je 45-50min aufgeteilt. Diese sollen in einem Abstand von 12h bearbeitet werden. Wir haben mit Break-Seiten gearbeitet, um alle Daten in einem Fragebogen zu erheben. Wäre es noch ein Lösungsansatz, stattdessen zwei Fragebögen zu verwenden? Ich dachte das 64kB Speicherplatz-Limit bezieht sich auf die Daten, die pro Fall gespeichert werden können. Aber wenn es die Datenmenge betrifft, die pro Fragebogen gespeichert werden kann, wäre das vielleicht auch noch eine Idee.
by SoSci Survey (327k points)
Die Funktion dropHistory() können Sie einfach dort platzieren, wo Sie erwarten, dass der Speicherplatz langsam zu Ende geht. Also ca. 10 Seiten vor dem Deadloop wäre eine gute Schätzung :)

> Wir haben mit Break-Seiten gearbeitet, um alle Daten in einem Fragebogen zu erheben. Wäre es noch ein Lösungsansatz, stattdessen zwei Fragebögen zu verwenden?

Vermutlich wäre es im vorliegenden Fall kein Fehler.

>  Ich dachte das 64kB Speicherplatz-Limit bezieht sich auf die Daten, die pro Fall gespeichert werden können.

Genau genommen kann mal zweimal 64kB pro Interview (Fall) speichern: Einmal die Nutzdaten und einmal die Daten im Hintergrund. Letztere waren es, die in Ihrem Fall das Limit sprengten.
by s093836 (145 points)
Ich habe nun das  Projekt überarbeitet und in insgesamt 7 Fragebögen aufgeteilt. Nun läuft alles ohne Fehlermeldungen oder aufhängen durch.

Vielen, vielen Dank für Ihre Hilfe. Mittlerweile konnte ich die Vorstudie starten.
by s093836 (145 points)
Hallo,

ich stehe mittlerweile kurz vor der Erhebung und wollte gerade nochmal final meine Studie durchtesten, da ist ein neues Problem aufgetreten.

Kurze Erläuterung zur Studie:
- es ist ein Lernexperiment
- Versuchspersonen lernen Vokabeln
- diese werden in einem Cued Recall abgefragt
- Es wird kontrolliert ob ein Mindestlernkriterium erreicht wurde, wenn nicht werden die Vokabeln nochmal gelernt und nochmal mit einem Cued Recall abgefragt.

Ab dem zweiten Cued Recall gab es bei Chrome das Problem, dass wenn man auf das Eingabefenster geklickt hat, angezeigt wurde, was man das letzte Mal an dieser Stelle geschrieben hatte (also Autofill, oder Autocomplete?). Das ist natürlich ungünstig.
Nachdem ich keine Möglichkeiten gefunden habe, dieses Problem in den Browsereinstellungen zu lösen, habe ich beschlossen Chrome als Internetbrowser auszuschließen.
Nun ist das Problem aber auch bei Microsoft Edge aufgetreten. Ich kann schlecht alle Internetbrowser ausschließen und ich kann auch nicht für jeden möglichen Internetbrowser eine Anleitung schreiben, wie man die Autofill-Option ausschaltet. Meine Studie ist so schon nicht besonders attraktiv und damit verliere ich noch mehr potentielle Teilnehmer. Außerdem ist es mir bisher nicht gelungen dieses Problem über die Browsereinstellungen zu lösen.
Haben Sie vielleicht noch eine Idee? Ich habe leider im Portal auch keine Lösung gefunden.
Ich arbeite auf www.soscisurvey.de.
 
Liebe Grüße
by SoSci Survey (327k points)
Ich denke, Sie werden sich schwerer tun, die Leute von Chrome wegzubekommen ... der hat einen Marktanteil um die 50%, weit mehr als alle anderen: https://de.statista.com/statistik/daten/studie/13007/umfrage/marktanteile-der-browser-bei-der-internetnutzung-in-deutschland-seit-2009/

Ich dachte eigentlich, wir hätten das Autofill bereits angegangen: https://support.soscisurvey.de/?qa=15300/autofill-unter-chrome-fur-adressdaten-deaktivieren

Könnten Sie vielleicht einmal einen Pretest-Link zu Ihrem Fragebogen posten - bitte direkt (!) zur ersten betroffenen Seite? Dann können wir das einmal genauer ansehen.

Es ist wohl so, dass in Chrome die Einstellungen dazu recht häufig geändert werden. Womöglich ist Edga da nachgezogen.
by s093836 (145 points)
Vielen Dank für die schnelle Antwort.

Hier schicke ich Ihnen einen Link zu dem problematischen Studienabschnitt im Debug-Modus.
https://www.soscisurvey.de/Frisch_gewagt_ist_halb_gewonnen/index.php?i=G27HC9JXEAT9&rnd=TWZW

Zur Erläuterung: Es speichert auch alle Antworten von vorherigen Testdurchgängen und nicht nur von dem aktuellen Testdurchgang.

Danke für Ihre Hilfe.
by s093836 (145 points)
Guten Morgen,

könnten Sie mir vielleicht eine Einschätzung geben, wie schnell Sie denken, dass das Problem behoben werden kann? Und ob es behoben werden kann?
Falls es sehr lange dauern würde oder gar nicht möglich ist, würde ich mich mit meiner Betreuerin beraten, ob ich die Erhebung trotzdem starten kann.

Liebe Grüße.
by SoSci Survey (327k points)
Ich dachte an Montag ... falls keine unerwarteten Komplikationen auftauchen.
by s093836 (145 points)
Vielen Dank für Ihre Einschätzung.

Ich denke bis Montag kann ich jetzt auch noch warten. Die Studienerstellung und- Vortestung hat sowieso schon wesentlich länger  gedauert als ich ursprünglich eingeplant habe.
by SoSci Survey (327k points)
Chrome scheint sich in dem Punkt AutoFill mittlerweile an die Web-Standards zu halten - das war vor einigen Versionen noch anders. Entsprechend konnten wir die Lösung von damals aktualisieren.

Soweit ich sehe, funktioniert Ihr Loop nun wie er soll ohne AutoFill. Falls Ihnen noch etwas auffällt, sagen Sie bitte Bescheid!

Hoffen wir, dass Chrome das Verhalten mit dem nächsten Update nicht gleich wieder ändert ;)
by s093836 (145 points)
Vielen lieben Dank für Ihre Hilfe,

ich habe es mir nochmal mit Chrome und Edge angeguckt und mir ist nichts mehr aufgefallen :D

Ich konnte nun endlich mit der Erhebung meiner Studie starten und freue mich darüber sehr :)

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

...