2009-08-11 9 views
1

Ich habe eine ziemlich lange JavaScript-Skript. Das Problem ist, dass ich in der Mitte ein div's innerHtml ändern möchte, um zu sagen "fast fertig, bitte warten". Ich denke, das Problem ist, dass ich eine jquery-Funktion anrufe. Im Erfolgsrückruf der Funktion rufe ich eine andere Funktion auf, von der ich versuche, die Seite zu aktualisieren.Seite nicht aktualisiert während beschäftigt JavaScript-Code

Wenn ich einen Breakpoint mit Firebug setzen und den Code durchgehen, wird die Seite aktualisiert und ich sehe die Nachricht des Divs. Aber wenn ich den Code einfach laufen lasse, sehe ich die Nachricht nicht. Wenn ich eine Alarmbox vor und nach der Aktualisierung des Div setze, sehe ich es auch.

Wer hat so etwas schon mal gesehen?

Vielen Dank!

+1

@Erica bekommt - Willkommen SO, aber ohne zu sehen, was Sie versucht haben, zu beantworten dies wird ein Ratespiel sein. – karim79

+0

Wiederholen Sie nach mir: Ich werde den Browser mit JavaScript nicht schlauch :-) –

Antwort

5

Normalerweise, wenn JS-Code ausgeführt wird, wird alle anderen Rendering angehalten, genau wie Sie sehen. Sie können versuchen, die setTimeout-Funktion zu verwenden, Rendering zu ermöglichen, wie so auf Ihrer Seite auftreten:

doStuff(); 
$('#myDiv').html('Almost done, please wait'); 
setTimeout(doMoreStuff, 50); 

Beachten Sie, dass doMoreStuff eine andere Funktion ist, die den letzten Teil Ihrer Verarbeitung tun wird.

Wenn Ihr Code auf diese Weise aufgeteilt werden kann, kann der Browser einige Renderzyklen durchlaufen. Vielleicht möchten Sie mit der Verzögerung (50 oben) experimentieren, um eine Zahl zu finden, die für Sie funktioniert, aber wenn Sie nur den Inhalt eines Div setzen möchten, dann sollte 50 in Ordnung sein (möglicherweise funktioniert sogar 0).

Auch kann ich nicht die jQuery-Syntax erinnern innerHTML- für die Einstellung, aber ich denke, der Punkt über :)

+0

Ich liebe den Spitznamen! – karim79

+0

Auch abgestimmt, und innerHTML in die jQuery-Äquivalent geändert. – karim79

+1

Ja, eine Verzögerung von Null funktioniert oft. Nicht einmal animierte Gifs animieren, bis JS die Kontrolle abgibt. – Nosredna

Verwandte Themen