praegune kellaaeg 17.06.2025 06:57:39
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
24.07.2010 11:31:25
php flush() |
|
|
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 |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
24.07.2010 12:06:18
|
|
|
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 |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
24.07.2010 15:34:42
|
|
|
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 |
|
 |
Celos
Kreisi kasutaja

liitunud: 23.08.2005
|
25.07.2010 20:05:00
|
|
|
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
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 |
|
 |
cookiepie
HV kasutaja
liitunud: 31.01.2010
|
18.08.2010 11:02:35
|
|
|
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 |
|
 |
|
lisa lemmikuks |
|
|
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.
|