romero: Design-Änderung innerhalb zwischen Funktionsaufrufen

Beitrag lesen

Das ist glaube ich dein 3. Thread mit ähnlichem Inhalt?! Das warst doch du, oder?

Ja das war ich, glaube ich zumindest :)

Du musst das einmal wirklich verstehen! Dann ist es ganz logisch/leicht.

Ich denke jedesmal dass das was "Neues" für mich und deshalb komme ich ja hierher :/

Das Script muss zur Ruhe kommen ist vielleicht etwas missverständlich. Der Browser muß neu zeichnen/rendern. Das macht er aber nicht wenn gerade ein JS abgearbeitet wird.
Also musst du dein Script abschließen, den Browser rendern lassen und dann ein neues Stück JS starten.
Das musst du aber ja sowieso schon machen, da ein JS welches 1-2 Minuten läuft dich ständig daran erinnert, das es so nicht sein sollte!
Also musst du dein lang laufendes JS in mehrere kurze Teile aufteilen, die zwischendurch den Browser mal wieder was anderes machen lassen. Am Ende eines solchen Teils, kannst du deinen Fortschrittsbalken aktualisieren.

Also mein Gerüst sieht in etwa so aus:

function init()  
{  
  var a = Funktion a( mit Werten );  
  var b = Funktion b( mit Werten aus a );  
  var c = Funktion c( mit Werten aus b );  
  var d = Funktion d( mit Werten aus c);  
  ...  
};

D.h. also, erst nachdem das Script diese Init() abgearbeitet hat, kommt er zu Ruhe? Und erst danach wird gerendert?

Jetzt frage ich mal ganz blöd für mich. Wo teile ich da das Script? Bzw. wie schließe ich das oben genannte Gerüst ab? Und wie starte ich da weitere Funktionen?

Vielleicht so?

  
function init()  
{  
  var a = Funktion a( mit Werten );  
};  
  
Start der Fortschritt_Anzeige();  
  
var b = Funktion b( mit Werten aus a );  
  
Start der Fortschritt_Anzeige();  
  
var c = Funktion c( mit Werten aus b );  
  
Start der Fortschritt_Anzeige();  
  
var d = Funktion d( mit Werten aus c);  
...

Alle Variablen sind natürlich globale Variablen die eindeutig am jeweiligem Namen zu erkennen sind (in meinem Script).

Und dass das Script 1-2 Minuten läuft, kommt daher, dass die Datenmenge einfach riesig ist, die er erstmal auslesen müsste. In der Regel sind es aber ca. 10-40 Sekunden.

LG Romero