Toon posts:

[PHP]seconde pauze ?

Pagina: 1
Acties:
  • 117 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben bezig met een script waarin ik een stippellijn wil zetten die langszaam vol loopt. dus : . <sec pauze> . <sec pauze> . <sec pauze> . etc.
en dat pas daarna het script verder gaat.

Ben al een tijdje bezig om dit voor elkaar te krijgen.
Ik heb nu onderstaande, het geen wat er gebeurt is dat internet explorer 6 seconde wacht en dan pas blaat en test weergeeft.

Dus niet eerst blaat dan zes seconde niks en dan test weergeeft. Hoe kan ik dit doen ?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 

echo "blaat @ ".time(); 

function wait($usecs) 
{ 
   $tijd = time(); 
   while($tijd > (time() - ($usecs + 1))); 
} 

wait(5); 

echo "test @ ".time(); 

?>

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19-05 09:52

thomaske

» » » » » »

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Topicstarter
sleep en usleep werken niet onder windows,

Verwijderd

Dat werkt dus niet met php, want die output de html die het script produceert pas als het script helemaal geparsed is, volgens mij. Dit kun je alleen lokaal met Javascript doen.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Zou je dat niet geoon clientside doen? Kijk anders hier:b http://www.php.net/manual/en/function.ob-clean.php

Verwijderd

Topicstarter
Daar was ik al bang voor dat dat alleen clientside mogelijk zou zijn, kan iemand mij hiermee helpen PHP kan ik wel maar ik heb geen kaas gegeten van Javascript.

Verwijderd

googlen naar 'javascript tutorial'
misschien dat je zo'n tutorial kan doorlezen?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<html><head>
<script type="text/javascript">
var NUM_DOTS = 20; // aantal stipjes
var INTERVAL_TIME = 1000; // milliseconden

var i = 0,
      intervalPtr = false;

function plot () {
   document.getElementById ( 'dots' ).innerHTML += ".";
   i ++;
   if ( i >= NUM_DOTS ) {
      clearInterval ( intervalPtr );
      intervalPtr = false;
   }
}

function startPlotter () {
   intervalPtr = setInterval ( 'plot ()', INTERVAL_TIME );
}
</script></head>
<!-- ... -->
<body onload="startPlotter()">
 <div id="dots">
  </div>
</body></html>


* drm is in een vreselijk goeie bui.

moved naar W&G

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Wow, harstikke bedankt voor de hulp, alleen hoe kan ik er nu voor zorgen dat het script pas verder gaat als de puntje klaar zijn met lopen ?

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

<meta refresh>-tags? Kijk voor de lol eens in de faq van www.irt.org. Staan veel van die kleine geintjes in.


Journalism is printing what someone else does not want printed; everything else is public relations.


  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 30-03 17:41
PHP:
1
2
3
4
5
for ( $i = 0; $i < 10; $i++ ) {
    echo '.';
    flush();
    sleep(1);
}
Dit is afhankelijk van de manier waarop de browser zijn buffer managed.
In Opera werkt het niet, in Internet Explorer wel.
edit:
En volgens de manual werkt sleep wel onder Windows.

Verwijderd

Topicstarter
Ericston schreef op 17 oktober 2002 @ 15:55:
PHP:
1
2
3
4
5
for ( $i = 0; $i < 10; $i++ ) {
    echo '.';
    flush();
    sleep(1);
}
Dit is afhankelijk van de manier waarop de browser zijn buffer managed.
In Opera werkt het niet, in Internet Explorer wel.
edit:
En volgens de manual werkt sleep wel onder Windows.
internet explorer wacht tot de volledige code binnen is en geeft dan pas weer. Werkt dus niet :(

sleep werk wel, maar zelfde verhaal internet explorer wacht tot de volledige code binnen is en dan pas komt er een output.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Clientside grafische toestanden moet je gewoon NIET serverside op gaan proberen te lossen...

Zie drm's reply.. zo'n soort script is de enige goede oplossing.

Verwijderd

Topicstarter
Dat is idd ook een oplossing alleen hij moet wachten met de rest van het script weergeven totdat de puntjes vol zijn.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

Verwijderd schreef op 17 oktober 2002 @ 16:22:
Dat is idd ook een oplossing alleen hij moet wachten met de rest van het script weergeven totdat de puntjes vol zijn.
Dan zet je de rest van de inhoud toch in een hidden layer die je pas zichtbaar maakt als de puntjes volzijn; of je redirect naar een andere (php) pagina na de puntjes. Een beetje creatief denken :)

Intentionally left blank


  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 30-03 17:41
Verwijderd schreef op 17 oktober 2002 @ 16:18:
[...]

internet explorer wacht tot de volledige code binnen is en geeft dan pas weer. Werkt dus niet :(

sleep werk wel, maar zelfde verhaal internet explorer wacht tot de volledige code binnen is en dan pas komt er een output.
Hmm, toen ik hem zonet testte in IE6 deed ie het.
PHP Manual:
Some versions of Microsoft Internet Explorer will only start to display the page after they have received 256 bytes of output, so you may need to send extra whitespace before flushing to get those browsers to display the page.
Zo dan?
PHP:
1
2
3
4
5
6
7
8
9
for ( $i = 0; $i < 256; $i++ ) {
    echo ' ';
}

for ( $i = 0; $i < 10; $i++ ) {
    echo '.';
    flush();
    sleep(1);
}
Maareuh, ik zou voor de Javascript oplossing gaan, ik zie sowieso geen praktisch nut in sleep() voor PHP.
edit:
En in flush() ook niet. :)

Verwijderd

[b]Ericston schreef op 17 oktober 2002 @ 16:46:
edit:
En in flush() ook niet. :)
Flush() werkt alleen niet op win32 bakken... :)

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Of het nou wel of niet kan in PHP, zoiets hoort gewoon clientside.
Das een feit.

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 30-03 17:41
Verwijderd schreef op 17 oktober 2002 @ 17:09:
[...]

Flush() werkt alleen niet op win32 bakken... :)
Dat hangt van je configuratie af.

  • ekkoper
  • Registratie: Augustus 2003
  • Laatst online: 17-11-2024
Bedankt, het is bij mij nu gelukt (weliswaar niet helemaal mooi) met de code:

for ( $i = 0; $i < 256; $i++ ) {
echo ' ';
}
flush();
sleep(7);


8) ;)
Pagina: 1