Antworten auf deine Fragen:
Neues Thema erstellen

Pause in For-Schleife

Fidelis_jpg

Aktives Mitglied

Hallo, ich hab hier mal einen (sehr) kleinen "Streich" geschrieben:

PHP:
<?php
for ($i=1; $i<=300; $i++)
{
echo "Virus $i installieren...<br>";
}
?>

Ihr wisst sicher, dass jetzt das angezeigt wird:

Virus 1 installieren...
Virus 2 installieren...
Virus 3 installieren...
...

Um das ganze aber noch ein wenig aufzupeppen wollte ich eine viertel Sekunde Pause zwischen jedem dieser Aufrufe haben, etwa so:

Virus 1 installieren...
[Kurze Pause]
Virus 2 installieren...
[Kurze Pause]
Virus 3 installieren...
[Kurze Pause]
...

Wie kann ich die Schleife jetzt für kurze Zeit anhalten und dann wieder laufen lassen??

Gruß, Fidelis
 

Fidelis_jpg

Aktives Mitglied

AW: Pause in For-Schleife

ok, also das mit dem sleep hab ich nach den "echo-string" schon versucht, nur hat das nicht funktioniert. Muss dann wahrscheinlich noch das flush einbinden...

So, ich hab jetzt gegoolet und viel ausprobiert mit setTimeout.
Hat alles nicht funktioniert...
Kann hier mal jmd den Code für 200ms Pause in einer schleife reinschreiben???
So viel ist das ja nicht.
Gruß
 

Duddle

Posting-Frequenz: 14µHz

AW: Pause in For-Schleife

eine viertel Sekunde Pause zwischen jedem dieser

Ich vermute, du hast daher
PHP:
<?php
sleep(0.25);
?>

probiert? Du hast ja in deinem zweiten Post keinen Quellcode hingeschrieben (*ZaunpfahlWink*), daher rate ich das einfach mal. Wenn ja, hast du sicherlich in den Kommentaren der sleep-Dokumentation folgendes übersehen:

This may seem obvious, but I thought I would save someone from something that just confused me: you cannot use sleep() to sleep for fractions of a second. This:

<?php sleep(0.25) ?>

will not work as expected. The 0.25 is cast to an integer, so this is equivalent to sleep(0). To sleep for a quarter of a second, use:

<?php usleep(250000) ?>

Ist damit dein Problem gelöst? Wenn nicht, poste deinen derzeitigen Code.



Duddle
 

stroyer

Aktives Mitglied

AW: Pause in For-Schleife

Ich würde es eher per Javascript machen, da hast du auch sonst noch ein paar andere Möglichkeiten in die Richtung mehr.
 

Fidelis_jpg

Aktives Mitglied

AW: Pause in For-Schleife

Also ich hab es natürlich mit usleep probiert, hab mich ja vorher informiert, bevor ich hier gefragt habe ;)

Java-Code: (wie geht es jetzt weiter?)
PHP:
<script type="text/javascript">
for (var i = 1 ; i <= 300 ; i++)
{
document.write("Virus ", i, " installieren...<br>");
}
</script>

PHP-Code (funzt nicht)
PHP:
<?php
for ($i=1; $i<=300; $i++)
{
echo "Virus $i installieren...<br>";
usleep(2500);
}
?>

Was jetzt??
 

stroyer

Aktives Mitglied

AW: Pause in For-Schleife

Im PHP Code fehlt das flush und im JS Code der sleep.
Js-Code für sleep (in Millisekunden):
PHP:
function sleep(length)
  {
    var start=(new Date()).getTime();
    var now;
    while(true)
      {
        now=(new Date()).getTime();
        if(now-start>length)
          {
            break;
          }
      }
  }
 

stroyer

Aktives Mitglied

AW: Pause in For-Schleife

PHP:
function sleep(length)
  {
    var start=(new Date()).getTime();
    var now;
    while(true)
      {
        now=(new Date()).getTime();
        if(now-start>length)
          {
            break;
          }
      }
  }
for(var i=1;i<=10;i++)
  {
    document.write("Virus "+i+" installieren...<br/>");
    sleep(250);
  }
 

Fidelis_jpg

Aktives Mitglied

AW: Pause in For-Schleife

AAAh, jetzt versteh ich das, man definiert sleep vorher!
Ok, danke jetzt ists klar!
Gruß

edit: und was verändere ich jetzt den 1.Teil, sodass es funktioniert?
 
Zuletzt bearbeitet:

sangui

Noch nicht viel geschrieben

AW: Pause in For-Schleife

Hallo, also die Lösung mit der Funktion sleep in JavaScript ist sehr sehr schlecht, da du dann für die Zeit der Pause eine CPU Auslaustung von 100% hast. Ich würde dir setInterval ans Herz legen, damit schonst du den PC des Anwenders.

Ich würde dir setInterval ans Herz legen dein Code sehe dann so aus:

PHP:
<script type="text/javascript">
var i = 1;
var inter = window.setInterval("Virus()", 250);

function Virus() {
document.getElementById("div_fuer_text").innerHTML += "Virus "+i+" installiert!<br />";
if(i==300) {
window.clearInterval(inter);
}
else {
i++
}
}
</script>

mfg sangui
 

stroyer

Aktives Mitglied

AW: Pause in For-Schleife

Erstens geht die CPU per JS in HTML maximal auf 20-50%, und zweitens, wenn es sich schon um ein "Virus n installiert!" handelt, darf da auch ein bisschen CPU Verbrauch im Spiel sein.
 

sangui

Noch nicht viel geschrieben

AW: Pause in For-Schleife

Erstens geht die CPU per JS in HTML maximal auf 20-50%, und zweitens, wenn es sich schon um ein "Virus n installiert!" handelt, darf da auch ein bisschen CPU Verbrauch im Spiel sein.

Erstens Wie bitte? Auf allen Rechnern bei denen ich eine solche Schleife getestet habe ging die CPU Auslastung auf 100% hoch, dabei handelte es sich um verschiedene Browser und auch verschiedene Betriebssysteme.

Zweitens auch wenn das der Fall ist, muss bzw. kann man davon ausgehen, dass auch andere nach dem Begriff "Pause in For-Schleife" suchen und dann evtl. hier landen, dann sollte wenigstens erwähnt sein, dass die Lösung mit der while-Schleife in JS nicht die beste es und es eindeutig bessere und sinnvollere Alternativen gibt.
 

ChrisvA

Aktives Mitglied

AW: Pause in For-Schleife

Die unterschiedlichen CPU-Auslastungen könnten damit zusammenhängen, dass Firefox nur jeweils einen Kern vom Prozessor benutzt. Wenn man heutzutage aber einen richtigen Mehrkernprozessor (also keinen virtuellen 2-kerner) hat, dürfte das mit den 50% bei Dualcore und 25% bei Quad stimmen.

PS: Was auch gut wirken sollte währe das öffnen und schließen von Bildern, welche die Konsole mit wirrem Text zeigt.
Alternativ natürlich ein Konsolen -Design bei dem auch noch der Text dann entsprechend ausgegeben wird.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.613
Beiträge
1.538.346
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben