Frank: delay ?!

Hi,
kann man in javascript eine art delay erzeugen, ohne die funktion
setTimeOut();  ??

Viele dank

ff

  1. Hallo

    kann man in javascript eine art delay erzeugen, ohne die funktion
    setTimeOut();  ??

    Eine einfache Zählschleife sollte Dir weiterhelfen.

    Gruß
    Jürgen

    1. Hi Jürgen,

      Eine einfache Zählschleife sollte Dir weiterhelfen.

      Ein "echtes" Timing ist damit aber nicht möglich....

      Grüße,
      Martin

      1. Hallo Martin

        Ein "echtes" Timing ist damit aber nicht möglich....

        stimmt aber für "eine art delay" langt es.

        Gruß
        Jürgen

        1. Halli hallo,

          Ein "echtes" Timing ist damit aber nicht möglich....

          stimmt aber für "eine art delay" langt es.

          Haha, ist sieht aber ganz so aus, aus lange es Martin nicht, sonst hätte er wohl nicht gefragt ;).

          Es gibt eigentlich 2 Arten von M"oglichkeiten:

          1. etwas mit setInterval. setTimeout wolltest Du aber nicht, warum weiß ich nicht, also wäre setInterval ok?
          2. ohne setInterval, aber dann würde man während des Delays total "hängen", d.h. es würde keine andere JS-Funktion oder etwas am Dokument machbar sein (die Browserinstanz oder zumindest das Dokument wäre dann nicht mehr ansprechbar, glaube ich, solange delayed wird).

          Bei beiden Möglichkeiten könntest Du das startDatum (/Zeit) in einem Objekt merken, und dann 1. im Interval oder 2. in einer while (BEDINGUNG) {} Schleife checken, ob eine von Dir gewollte Zeit um ist. Bei der 1. Möglichkeit könntest Du aber auch eine eigene Zählvariable statt des Datumsobjektes nutzen, da Du ja weißt, wie schnell das Intervall ist (es könnte allerdings langsamer laufen, falls es die Performance nicht anders zulässt).

          Mirko

          1. ...

            Haha, ist sieht aber ganz so aus, aus lange es Martin nicht, sonst hätte er wohl nicht gefragt ;).

            Ach ähm... Frank war ja der urpsrüngliche Fragensteller... naja :).

            Mirko

          2. Hi,

            mein eigentliches problem liegt darin, dass ich eine function aufrufe zu der Werte übergeben werden. Als erstes soll eine bestimmte seite über location.reload() refresht werden.
            Dann erst soll die Verarbeitung der Werte und die weiteren Anweisungen abgearbeitet werden. Das ist so schon alles recht kompliziert und daher wollt ich kein settimeout().
            Ich brauch nur ne Möglichkeit, solange zu delayen, bis die Seite refresht ist, dann kann es weiter gehen.

            alles unklar ??

            ff

            1. gruss Frank,

              mein eigentliches problem liegt darin, dass ich eine function
              aufrufe zu der Werte übergeben werden ...
              Ich brauch nur ne Möglichkeit, solange zu delayen, bis die Seite
              refresht ist, dann kann es weiter gehen.
              alles unklar ??

              aha - Du suchst also eine art ueberwachungsscript, welches
                       ab und zu mal vorbeikommt und nachschaut, ob die seite
                       schon geladen wurde, an welche Du dann Deine parameter
                       senden willst

              hier mal was schnell zusammengestricktes und ein kommentar:

              [gruss mirko: das script ist nicht geprueft,
                               sondern soll meinem probanden
                               nur als denkanstoss dienen    ]

              auf je eine von den zwei seiten, die in Deinem fall miteinander
                 kommunizieren muessen, ist ein script verteilt - schau mal:

              (a)---------------------------------------------------------------
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
              <html>

              <head>
              <title>supervisor.html</title>
              <script language="JavaScript" type="text/javascript">
              <!--
              var refreshStarted = false;
              var refreshCompleted = false;
              var abbordRefreshCounter = 0;
              var timeoutIDrefresh = null;

              function refreshAndUpdate(yourParameter01,yourParameter02,yourParameter03)
               {clearTimeout(timeoutIDrefresh);
                if (abbordRefreshCounter >= 1000)
                {//in diesem fall nach 10sec
                 alert("zeitueberschreitung!!");
                 return;
                }
                if (!refreshStarted)
                {//ich gehe mal davon aus, dass Du mit [frame]s arbeitest
                 //also dann z.b. so:
                 //im bsp beherbergt der [frame] "refreshLocation" Deine
                 //zu ladende seite - hier: die beispieldatei "frischeSeite.html"
                 //mit dem script "sendStatus()"
                 top.frames["refreshLocation"].location.href = "frischeSeite.html";
                }
                if (refreshStarted && refreshCompleted)
                {//mache irgendetwas mit den parametern
                 refreshStarted = false;
                 refreshCompleted = false;
                 abbordRefreshCounter = 0;
                 return;
                }
                if (refreshStarted && !refreshCompleted)
                {abbordRefreshCounter++;
                 timeoutIDrefresh = setTimeout("self.refreshAndUpdate()",100);
               } }
              //-->
              </script>
              </head>

              <body>
              </body>

              </html>
              (a)/--------------------------------------------------------------

              (b)---------------------------------------------------------------
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
              <html>

              <head>
              <title>frischeSeite.html</title>
              <script language="JavaScript" type="text/javascript">
              <!--
              function sendStatus()
               {//ich gehe mal davon aus, dass Du mit [frame]s arbeitest
                //also dann z.b. so:
                //im bsp beherbergt der [frame] "refreshSupervisor"
                //die beispieldatei "supervisor.html"
                //mit dem ueberwachungsscript "refreshAndUpdate()"
                top.frames["refreshSupervisor"].refreshCompleted = true;
               }
              //-->
              </script>
              </head>

              <body onload="self.sendStatus()">
              </body>

              </html>
              (b)/--------------------------------------------------------------

              viel spass und by(t)e by(t)e - peterS. - pseliger@gmx.net