Diskuze: Sleep v php

PHP PHP Sleep v php American English version English version

Avatar
Michal Zouhar:

Ahoj,
rád bych se zeptal , jak implementovat funkci sleep tak, aby se udělala až po konci všech (html i php) příkazů v souboru. Pro přiblížení ... mám pexeso a po otočení druhé karty chci chvíli počkat před tím, než vyhodnotím výsledek. Jenže i když dám sleep až úplně na konec skriptu, stejně se provede dřív, než se druhá karta (v html) otočí a to přesto, že je html před php skriptem. ... snad jsem to popsal pochopitelně..

 
Odpovědět 15. června 23:51
Avatar
Dave Hill
Člen
Avatar
Dave Hill:

Ahoj.
A proč tohle řešíš v PHP? Nemělo by se otáčení ATP řešit JavaSriptem?
Pak by to bylo jednoduché, zavoal by jsi php funkci jako callback po dokončneí animace, nebo jiné akci :-)

Pokud je PHP nutnost pak by se to asi dalo řešit pomocí cyklu a data, jsou tam i nějaké timery jako http://php.net/….evtimer.php ale ty se mi moc nelíbí :))

 
Nahoru Odpovědět  +3 16. června 0:08
Avatar
Dave Hill
Člen
Avatar
Dave Hill:

BTW: tento timer je PECL rozšíření PHP, takže pokud to máš na hostingu a ne VPS nebo jiném serveru, kde můžeš server spravovat, tak se použít nedá.

 
Nahoru Odpovědět 16. června 0:13
Avatar
00
Člen
Avatar
Odpovídá na Michal Zouhar
00:

a) V prohlížeči

PHP běží na ser­veru, ale jak­mile se PHP sk­ript dokončí, strán­ka se "načte" ce­lá a již ji  ­PHP neovlivníš.

Schéma načítá­ní php stránky (při­bližně)

 • Prohlížeč poš­le dotaz na ser­ver

 • Spustí se PHP, je-li třeba

 • Až PHP skon­čí (!), zobra­zí se stránka (ú­plně)
        => Už s­e stránkou s PHP nic n­euděláš

 • Spustí se skrip­ty v JavaScrip­tu, případně re­agují nebo spou­štějí PHP stej­ným způsobem ("A­JAX", "XHR")

--

Takže sleepem to ne­vyřešíš, použij vý­še zmíněné XHR, A­JAX (v jQuery to je $­.get a $.post) v Ja­vaScriptu, kte­rým spustíš dal­ší PHP. 

--

A to bych zapom­něl:  V JavaS­criptu použij win­dow.setTimeou­t(cb, ms) pro poč­kání:

// kód
var cas = 10000// Čas, který se bude čekat -- Zde 10 s (10000 ms)
setTimeout(function () {
    $.post("adresaVyhodnoceni.php", {cisloKarticky: 123}, function (navrat) {
        // Zpracujeme vrácený kód z adresy adresaVyhodnoceni.php
    }
}, cas);
// kód

b) Na serveru (vý­jimečné přípa­dy)
Tato možnost je ur­čena pro situ­ace, kdy je t­řeba spustit ješ­tě něco až se str­ánka načte v PHP­. (ale stejně ji ne­ovlivníme, viz pís­meno a)

<?php
function shutdown()
{
    // This is our shutdown function, in 
    // here we can do any last operations
    // before the script is complete.

    echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');
?>
http://php.net/…own_function
V pořádku?
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +3 18. června 17:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.