Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  php flush() märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 24.07.2010 11:31:25 php flush() vasta tsitaadiga

Tegin prooviks töötava kella. Kood toimib localhostis ja kell töötab, kuid kui laen ülesse netpiont serverisse, siis leht laeb tükk aega ja lõpuks väljastab veateate koos viimase kella ajaga :
tsitaat:
Fatal error: Maximum execution time of 30 seconds exceeded in /home/np7283/domains/muffimaania.pri.ee/public_html/average/sodi/kell.php on line 11

Saan aru, et aeg läks üle, kuid miks ta selle aja sees mulle seda muutuvate numbritega kella ei kuva - browser ei renderda? Server ei toeta flush ?

<?php

flush();
$a=3;
$today2 = date("H:i:s");
while ($a==3) {

$today = date("H:i:s");

if($today!=$today2){
flush();
echo '<p style="position:absolute;left:100px;top:100px;height:40px;width:100px;background: #99FFCC;"></p>
<p style="position:absolute;left:100px;top:100px;height:40px;width:20px;">'.$today.'</p>';
$today2 = $today;
}

}

?>

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 24.07.2010 12:06:18 vasta tsitaadiga

andrusny, loe rohkem flush()'i lehekülge ja vaata seal ka kommentaare.
http://php.net/manual/en/function.flush.php

Samuti soovitaks sul usleep, sleep vms käsku kasutada, et server väga tuimalt meeletult protsessorit ei kasutaks selle scripti jooksutamiseks.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 24.07.2010 15:34:42 vasta tsitaadiga

Ma ei saanud ikkagi aru, miks asi netpoint serveris ei toimi. Kasutasin üht näidist sealt. Ju ma ei oska õigest kohast lugeda seal.

ob_start();

    echo 'printing...<br />';
    ob_flush();
    flush();

  sleep(3);
    echo 'printing...<br />';
    ob_flush();
    flush();

   sleep(3);
       echo 'printing...<br />';
    ob_flush();
    flush();

   sleep(3);
       echo 'printing...<br />';
    ob_flush();
    flush();

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Celos
Kreisi kasutaja
Celos

liitunud: 23.08.2005




sõnum 25.07.2010 20:05:00 vasta tsitaadiga

Su koodis praegu flush(); käsku ei kutsutagi: võrdled pidevalt genereeritavaid date("H:i:s") väärtusi, mis iga kahe while tsükli täitmise ajal ei muutu (proovi teha nt. while tsükkel, kus kümme või kümme tuhat järjestikkust date("H:i:s") väärtust salvestatakse ja siis välja prinditakse).

Samuti lõputu while tsüklit oleks parem kirjutada nt. while(true). Praegu lood asjata muutuja, mis koodi lugemist raskendab.

Kui ülaltoodu ei aita, siis tekitab probleeme ehk serveri seadistus. Kui output_buffering on seadistatud, siis võib selliseid asju juhtuda.

e: Tundub, et eksisin ülaltooduga, su koodis omistamine ikka ilusti if-i sees, mis mul kahe silma vahele jäi icon_smile.gif

Siis ilmselt tegemist kas serveri- või brauseripoolse bufferdamisega. Proovi nt. FireBugi vms-ga vaadata, kas brauser saab asjad kätte või ei.
Kommentaarid: 16 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 15
tagasi üles
vaata kasutaja infot saada privaatsõnum
cookiepie
HV kasutaja

liitunud: 31.01.2010




sõnum 18.08.2010 11:02:35 vasta tsitaadiga

UniServeri peal mul flush() käima ei läinud, kogu leht väljastati alles skripti lõppedes (või ülimalt pikkade vahedega). Samas Tantumi veebiruumis tuli iga 10-15 sekundi tagant uut infot peale, kuid siiski mitte reaalajas, nagu ta olla võiks.
Kommentaarid: 19 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  php flush()
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.