/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
flush() output browser
Fra : scootergrisen


Dato : 17-01-11 04:22

Jeg har noget kode som tager mange sekunder at udfører. Det kan tage
flere minutte.

Undervejs i koden viser jeg forløbet med echo.
Altså nu sker der det og nu sker der det og det.

Men som det er nu bliver alt output først vist når scriptet er helt færdig.

Hvordan får jeg outputtet vist løbende ?

Jeg har set på flush() men kan godt være jeg skal starte noget andet først.



 
 
scootergrisen (17-01-2011)
Kommentar
Fra : scootergrisen


Dato : 17-01-11 04:40

Nu kan jeg se at outputtet bliver flushet efter 8195 bytes (8Kb)
Også igen efter 16396 (16Kb).

Så der er altså en 8 Kb buffer et eller andet sted.
Er der nogen der ved hvor jeg kan bestemme den buffer ?

Leif Neland (17-01-2011)
Kommentar
Fra : Leif Neland


Dato : 17-01-11 07:18

Den 17-01-2011 04:21, scootergrisen skrev:
> Jeg har noget kode som tager mange sekunder at udfører. Det kan tage
> flere minutte.
>
> Undervejs i koden viser jeg forløbet med echo.
> Altså nu sker der det og nu sker der det og det.
>
> Men som det er nu bliver alt output først vist når scriptet er helt færdig.
>
> Hvordan får jeg outputtet vist løbende ?
>
> Jeg har set på flush() men kan godt være jeg skal starte noget andet først.
>

Hvad mener du med "set"?

Har du brugt det?

Leif

--
Bevar P2, luk P3, der er nok P3'er i forvejen.

scootergrisen (17-01-2011)
Kommentar
Fra : scootergrisen


Dato : 17-01-11 07:33

>> Jeg har set på flush() men kan godt være jeg skal starte noget andet
>> først.
>>
>
> Hvad mener du med "set"?
>
> Har du brugt det?

Jeg bruger flush() nu men den viser først outputtet i browseren efter 8
Kb output.

Det vil sige hvis jeg skriver:

echo 'x';
flush();
sleep(5);
echo 'y';

Så går der 2 sekunder før xy vises.

Men jeg ville jo gerne have at først vises x også går der 5 sekunder
også vises y.

Det er måske http serveren (apache) eller browseren (firefox) som er
skyld i dette.

Johan Holst Nielsen (17-01-2011)
Kommentar
Fra : Johan Holst Nielsen


Dato : 17-01-11 11:00

On 2011-01-17 07:33, scootergrisen wrote:
> Det er måske http serveren (apache) eller browseren (firefox) som er
> skyld i dette.

Det er browseren - typisk kan det løses ved at starte med at outputte en
"lang" række spaces.

/Johan

scootergrisen (17-01-2011)
Kommentar
Fra : scootergrisen


Dato : 17-01-11 13:11

Den 17-01-2011 11:00, Johan Holst Nielsen skrev:
> On 2011-01-17 07:33, scootergrisen wrote:
>> Det er måske http serveren (apache) eller browseren (firefox) som er
>> skyld i dette.
>
> Det er browseren - typisk kan det løses ved at starte med at outputte en
> "lang" række spaces.
>
> /Johan

Der ser ud til hvis jeg outputtet 8192 mellemrum så virker det.

Det tror jeg at jeg vil gøre så selvom det jo er spild af 8 Kb hver gang.

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste