NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Sleep v php

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Michal Zouhar:15.6.2016 23:51

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.6.2016 23:51
Avatar
Dave Hill
Člen
Avatar
Dave Hill:16.6.2016 0:08

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
16.6.2016 0:08
Avatar
Dave Hill
Člen
Avatar
Dave Hill:16.6.2016 0:13

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.6.2016 0:13
Avatar
00
Člen
Avatar
Odpovídá na Michal Zouhar
00:18.6.2016 17:39

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í
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
18.6.2016 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.