Sowas wie flush() für Javascript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sowas wie flush() für Javascript

    Hallo,

    ich durchlaufe in Javascript eine Schleife, und in dieser Schleife wird syncron per Ajax (jQuery) eine php-Datei aufgerufen welche nur ein Ergebnisstring zurück gibt, mit den ich dann in Javascript weiterarbeite. Funktioniert auch!

    Bei jeden Durchlauf der Schleife setze ich eine simplen Fortschrittsbalken, was im Firefox und Opera tadellos funktioniert.

    Nur im IE und auch Safari, passiert während des Durchlaufes überhaupt nix, erst wenn die Schleife fertig ist, bekomm ich die Änderungen am Ladebalken zu sehen.

    Gibt es da ein Workaround dafür oder eine Lösung. Ich suche eigentlich so etwas wie in php flush();

    Danke!

  • #2
    Zitat von TriphunEM Beitrag anzeigen
    Ich suche eigentlich so etwas wie in php flush();
    Nein, suchst du nicht - weil flush dafür da ist, den Ausgabepuffer an den Client zu senden.
    Mit JavaScript befindest du dich aber schon auf dem Client, also gibt's da gar nichts zu „flushen“.

    ich durchlaufe in Javascript eine Schleife, und in dieser Schleife wird syncron per Ajax (jQuery) eine php-Datei aufgerufen
    Weiß der Geier, warum du das synchron machst ...

    Dass Schleifen (for/while) „blockieren“, bis sie fertig abgearbeitet sind, ist der Normalfall. So lange ein „Arbeitsschritt“ in JavaScript läuft, wird die Kontrolle nicht an die Rendering-Engine zurück gegeben - so dass Änderungen am HTML/CSS auch nicht umgesetzt werden. (Warum das bei dir im FF/Opera trotzdem funktioniert, ist ohne Kenntnis deines Codes nicht zu sagen.)

    Der übliche Weg, um diese Problematik zu umgehen, ist das Ersetzen der Schleife durch wiederholte Aufrufe per setTimeout/setInterval.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Zitat von wahsaga Beitrag anzeigen
      ist das Ersetzen der Schleife durch wiederholte Aufrufe per setTimeout/setInterval.
      … bzw. der asynchrone Weg über den onreadystatechange-Event.
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar

      Lädt...
      X