Anna Bolika
Erfahrenes Mitglied
Ich habe ein Problem, mit dem ich nicht weiterkomme.
Ich habe ein kleines eigenes Framework für ein eigenes CMS, das Daten über Ajax nachläd. Dies geschieht über eine eigene Syntax, die hier nicht wichig ist, weil sie fehlerfrei funktioniert. Dies habe ich getestet.
Nun habe ich eine "Warte-Funktion" geschrieben, deren Inhalt so aussieht. Auch diese Funktion funktioniert.
Nun wird eine bestimmte Befehlsfolge über Ajax nachgeladen, die in Pseudo-Code lautet:
- Öffne einen Layer
- Schreibe einen Text hinein.
- Warte 3 Sekunden
- Schließe den Layer wieder.
Alles wird richtig erkannt - das ist bereits getestet. Probleme bereitet die Warte-Funktion (erst mal nur auf Chrome getestet).
Offenbar wird der Layer geöffnet, der Text hineingeschrieben. ABER scheinbar geschieht das alles erst NACHDEM die Warte-Funktion abgelaufen ist. Daraufhin wird der Layer auch sofort wieder geschlossen, so dass man den Eindruck hat, dass nichts passiert.
Nimmt man die Warte-Funktion heraus und ersetzt sie durch ein alert(), klappt alles, wie gewollt. Für sich allein funktioniert die Wartefunktion aber.
Mal eine Frage an die Profis, ob folgendes sein könnte:
Kann es sein, dass die Warte-Funktion das System so sehr stilllegt, dass der gerade geöffnete Layer noch nicht zur Anzeige an den Bildschirm weitergegeben wird. So dass also technisch gesehen der Layer vor dem wait angelegt wird, aber praktisch das System erst wieder genug Luft hat, ihn auch anzuzeigen, wenn die Wartezeit abgelaufen ist.
Wenn mich jemand verstehen kann, bin ich über Tipps dankbar.
Ich habe ein kleines eigenes Framework für ein eigenes CMS, das Daten über Ajax nachläd. Dies geschieht über eine eigene Syntax, die hier nicht wichig ist, weil sie fehlerfrei funktioniert. Dies habe ich getestet.
Nun habe ich eine "Warte-Funktion" geschrieben, deren Inhalt so aussieht. Auch diese Funktion funktioniert.
Code:
var iSeconds;
var iMilliSecondsToWait = 1000 * iSeconds;
var oStartTime = new Date();
var iStartTime = oStartTime.getTime();
var oNowTime;
var iNowTime;
do
{
oNowTime = new Date();
iNowTime = oNowTime.getTime();
}
while ((iNowTime - iStartTime) < iMilliSecondsToWait);
Nun wird eine bestimmte Befehlsfolge über Ajax nachgeladen, die in Pseudo-Code lautet:
- Öffne einen Layer
- Schreibe einen Text hinein.
- Warte 3 Sekunden
- Schließe den Layer wieder.
Alles wird richtig erkannt - das ist bereits getestet. Probleme bereitet die Warte-Funktion (erst mal nur auf Chrome getestet).
Offenbar wird der Layer geöffnet, der Text hineingeschrieben. ABER scheinbar geschieht das alles erst NACHDEM die Warte-Funktion abgelaufen ist. Daraufhin wird der Layer auch sofort wieder geschlossen, so dass man den Eindruck hat, dass nichts passiert.
Nimmt man die Warte-Funktion heraus und ersetzt sie durch ein alert(), klappt alles, wie gewollt. Für sich allein funktioniert die Wartefunktion aber.
Mal eine Frage an die Profis, ob folgendes sein könnte:
Kann es sein, dass die Warte-Funktion das System so sehr stilllegt, dass der gerade geöffnete Layer noch nicht zur Anzeige an den Bildschirm weitergegeben wird. So dass also technisch gesehen der Layer vor dem wait angelegt wird, aber praktisch das System erst wieder genug Luft hat, ihn auch anzuzeigen, wenn die Wartezeit abgelaufen ist.
Wenn mich jemand verstehen kann, bin ich über Tipps dankbar.