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

Ich habe zwei html Bausteine auf einer Fragebogenseite, die JS code ausführen. Der erste ist eine relativ rechenintensive Berechnung von random numbers, die unterschiedlich lange dauern kann. Der zweite leitet den Teilnehmer nach 2-3 Sekunden automatisch weiter. Meine Frage leutet nun: Werden die beiden JS codes in den Reihenfolge ausgeführt, in der sie auf der Seite platziert wurden? Ich frage weil ich sicher gehen will, dass die rechenintensiven Operationen aus dem ersten Baustein ausgeführt sind, bevor der Teilnehmer automatisch weitergeleitet wird.

in SoSci Survey (dt.) by s143266 (335 points)
edited by s143266

1 Answer

+1 vote
 
Best answer

Wenn Sie im <script> Tag nichts gegenteiliges definieren, wird das Script synchron ausgeführt - das heißt, der Rest der Seite ist blockiert bis der Code ausgeführt ist.

Die Browser nehmen sich da aber u.U. einige Freiheiten. Eventuell zeigen Sie eine Warnung, dass ein Script die Seite blockiert - oder sie brechen es sogar ab, weil sie "denken", es handle sich um eine Fehlfunktion. Für die Browser steht die Benutzerfreundlichkeit im Vordergrund. Und da sind Script, welche die Seite für mehr als ein paar Millisekunden blockieren, ein Fehler.

Zuverlässiger wäre es, wenn Sie den Timer für den Seitenwechsel einfach erst nach Abschluss der Berechnungen starten. Sie können da ja auch die bereits vergangene Zeit subtrahieren bzw. gleich weiterleiten, wenn mehr als die 2-3 Sekunden vergangen sind.

Damit die Browser nicht interferieren, sollten Sie das Script auch nicht synchron (=blockierend) aufrufen, sondern z.B. über ein window.setTimeout() mit ein paar Millisekunden.

by SoSci Survey (190k points)
selected by s143266
...