Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sleep funktio ei toimi

Sivun loppuun

jumitusta [09.11.2009 13:31:08]

#

En saa Sleep funktiota millään toimiaan, eli haluaisin että PHP scripti pysähtyisi hetkeksi ja jatkaisi uudestaan, mutta sivuni odottaakin kaikki Sleep-komennot ennen kuin näyttää sivulla mitään, vaikka koitin myös flushia. testisivuni: (käytän firefoxia)

<HTML>
<BODY>
Odota...
<?php flush(); sleep(2); ?>
Odota vielä...
<?php flush(); sleep(2); ?>
Done.
</BODY>
</HTML>

Eli tämä sivu toimii mulla siten, että se odottaa 4 sekuntia, ennen kun lataa koko sivua ollenkaan, ja sitten näyttää noi kaikki samalla kertaa.

Metabolix [09.11.2009 13:34:54]

#

Toisessa keskustelussa todettiin, että viruksentorjuntaohjelmat (ja ehkä myös välityspalvelimet ynnä muut hienoudet) voivat aiheuttaa tuon ongelman. Asiaa ei voi PHP:llä kiertää, koska ongelma on käyttäjän puolella. Täytyy siis keksiä jokin muu ratkaisu, jolla pääsee haluamaansa tulokseen.

Grez [09.11.2009 13:40:34]

#

Niin, sitten on sellainenkin hassu juttu että jotkin selaimet (ainakin vanha IE) ei ala renderöimään sivua ennen kuin se on valmis tai vähintään tietty tavumäärä on tullut. Tämä oli sitten kierretty esim. kiss.fi:n historiallisessa chatissa lähettämällä sivun alkuun riittävä määrä kommentteja.

Tosiaan nykyään varmaan suurempi ongelma nuo Metabolixin mainitsemat asiat, joiden kiertäminen on vaikeampaa ellei peräti mahdotonta.

jumitusta [10.11.2009 11:48:51]

#

Ok, kiitoksia tiedoista. Pitää sit jotain muuta yrittää keksiä...

Sahrah [12.11.2009 15:31:49]

#

koita: ob_flush(); flush(); yhdistelmää

Metabolix [12.11.2009 17:10:39]

#

Sahrah kirjoitti:

koita: ob_flush(); flush(); yhdistelmää

Jos olisit lukenut muiden vastauksia, tietäisit varmaan, ettei tuokaan auta.

Sahrah [12.11.2009 17:42:45]

#

Metabolix kirjoitti:

Sahrah kirjoitti:

koita: ob_flush(); flush(); yhdistelmää

Jos olisit lukenut muiden vastauksia, tietäisit varmaan, ettei tuokaan auta.

Luin edelliset vastaukset kyllä. Omakohtaisesta kokemuksesta voin sanoa, ettei flush() toimi ilman ob_flushia() ja Mozilla Firefox 2 ainakin tulostaa juttuja vaikka sivun lataus on vielä kesken. Muista selaimista en tiedä, mutta tuo on ratkaisu siihen mitä kysyjä halusi tietää.

EDIT: Tein pikaisen testin. Tuo toimii Firefox 3:llakin ja IE 6:lla. Välityspalvelimen kanssa en tiedä.

Metabolix [12.11.2009 17:54:34]

#

Sahrah kirjoitti:

Omakohtaisesta kokemuksesta voin sanoa, ettei flush() toimi ilman ob_flushia()

Toimiihan se, jos palvelin on säädetty muuten sopivasti. Mutta ei tässä ole kyse PHP:n tai edes selainten toimivuudesta, vaan kuten toisessa keskustelussa todettiin, viruksentorjuntaohjelma voi estää kaiken myös toimivaksi havaitulla sivulla ja selaimella.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta