Gå til innhold

spørsmål ang ob_gzhandler


Anbefalte innlegg

Hei

 

Leste her at hvis man legger til ob_start("ob_gzhandler") så vil sidene bli lastet ned raskere, men etter å ha testet det (uformelt) virker det som om det motsatte.

 

Hva skal det egentlig være? Er det noen fordel å bruke "ob_gz_handler"?

 

 

EDIT og LØSNING: Fant ut av det. Jeg hadde glemt å legge til ob_end_flush() på slutten. Nå går det faktisk raskere, virker det som i alle fall.

Endret av MC2
Lenke til kommentar
Videoannonse
Annonse

Sidene dine blir zippet før de blir sendt, derav mye mindre informasjon(tekst) å sende, derfor raskere overføring.

ob_gzhandler sjekker om browseren støtter komprimerte sider, og sender kun siden komprimert dersom browseren din faktisk støtter det, så du trenger ikke tenke på dette.

Lenke til kommentar

Ikke som jeg vet om egentlig. Jeg bruker nesten alltid output buffering, da det kan øke hastigheten på skriptet med opp til 15% etter hva jeg har hørt.

Å komprimere det i tillegg, ser jeg ikke som en ulempe så lenge serveren klarer og har støtte for det.

Lenke til kommentar
Er det noen ulemper med å bruke dette?

Alle ønsker vel at siden man lager skal lastes fortest mulig, så da burde vel alle bruke dette? ;)

5988863[/snapback]

Kompresjon skjer åpenbart ikke av seg selv, så ulempen er økt CPU-bruk. Dog, kjører man bare output-buffer (uten komperesjon) tjener man fort 10-15% uten økt CPU-bruk, men dog med noe økt minnebruk.

Endret av Ernie
Lenke til kommentar

spørs jo hva du vil gjøre.

Dersom du bare vil spytte ut ob, og deretter lukke ob, kan du bruke ob_end_flush.

ob_end_clean avslutter ob uten å flushe, dvs. du taper alt i ob.

flush() alene lukker i ob, såden lukker i ob_start() i det hele tatt.

 

kort og godt.

bruk ob_end_flush() om du vil skrive ut alt i ob, bruk ob_get_flush() dersom du vil ha alt i ob i en streng. (ob_get_flush() avslutter ob)

Lenke til kommentar
hva er beste måte å lukke ob_start? er det å bruke ob_end_flush() eller ob_end_clean() eller flush()?

5989913[/snapback]

Den beste måten kommer veldig an på hva du skal.

ob_end_flush stopper buffering, sender bufferet til klient og sletter det.

ob_end_clean stopper buffering og sletter bufferet.

ob_flush sender nåværende buffer til bruker.

Endret av Ernie
Lenke til kommentar

Skulle bare legge til dette:

Det er anbefalt å bruke zlib.output_compression = On, fremfor ob_gzhandler().

 

Fra php.net:

Note: You cannot use both ob_gzhandler() and zlib.output_compression. Also note that using zlib.output_compression is preferred over ob_gzhandler().
Endret av eivind_82
Lenke til kommentar
Sikkert ikke store forskjellen nei, men php.net skriver jo:

 

Also note that using zlib.output_compression is preferred over ob_gzhandler().

5989977[/snapback]

Joa, men det har nok mest med at det er et sted å endre og ikke x antall php-filer.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...