Katharina: wait() Funktion => aber nicht setTimeout

Hallo,

ich möchte innerhalb einer Funktion eine Sekunde lang warten, und dann mit den Anweisungen aus der Funktion fortfahren. Einen erneuten Aufruf der gleichen Funktion mit setTimeout möchte ich vermeiden, wie kann ich also mitten in einer Funktion 1 Sekunde warten? Kann ich evtl. von der Uhrzeit die Sekunden mitzählen?

Katharina

  1. Hallo,

    es gab zum selben Problem letztes Jahr einmal einen Thread - allerdings einigte man sich dort letzten Endes darauf, daß es das Beste sei, solch ein "sleep" zu umgehen durch einen anderen Lösungsansatz:
    http://forum.de.selfhtml.org/archiv/2005/10/t116680/.

    Was spricht denn in Deinem Fall konkret dagegen, setTimeout() oder setInterval() zu verwenden und die nach der Pause auszuführenden Anweisungen in eine eigene Funktion zu packen?

    Ciao,
    Andreas

    --
    "No, Sir, I don't like it." - (Mr. Horse)
  2. Es gibt sicherlich ein Paar workarounds, am einfachsten ist es jedoch, einfach settimeout() in deine funktion zu packen, und den teil, der danach kommen soll in eine andere auszulagern. Es sieht evtl. etwas komplizierter aus, bleibt aber die sinnvollste Lösung.

    mfg
    Micha

    --
    viel Spass: ie:{ fl:) br:> va:( ls:[ fo:) rl:? n4:{ ss:{ de:> js:} ch:? sh:( mo:) zu:]
  3. Hallo Katharina,

    ... eine Sekunde lang warten, ... setTimeout möchte ich vermeiden ...

    dann bleibt dir nur, innerhalb einer Schleife die Uhr abzufragen, bis die Sekunde um ist. Leider geht in dieser Zeit die CPU-Auslastung auf 100% und die meisten Browser (z.B. IE und FF) "frieren ein". Es wird also weder gerendert noch kann der User irgendetwas machen. Und wenn die Wartezeit zu lang ist (beim FF 5 s), kommt eine Warnung.

    Gruß, Jürgen