Vyvolání fleshmassage při zpracování formuláře

shifi
Člen | 6
+
0
-

Dobrý den,

potřeboval bych poradit. Mám udělaný formulář přes ajax, který instaluje server. Trvá to cca. 3–5 minut a chtěl bych, aby to vypsalo postup instalace.

<?php
...
            $this->flashMessage("Server se instaluje, prosím čekejte.", "warning");
            $this->redrawControl('flash');
...
            $this->flashMessage("Server se nastavuje, prosím čekejte.", "warning");
            $this->redrawControl('flash');
...
?>

Dalo by se to nějak udělat?

Díky.

Editoval shifi (4. 2. 2018 13:51)

David Matějka
Moderator | 6445
+
+1
-

Ne, nijak snadno to nepujde. http funguje na principu request-response a na jeden request tak nemuzes odeslat vice odpovedi (teoreticky by slo nejak reagovat na partial response, ale bylo by to slozite a nespolehlive)

nejlepsi postup asi bude, ze provedes pozadavek, server to jen ulozi ke zpracovani (treba do db) a ihned posle response s nejakym identifikatorem. na pozadi to pak zacne zpracovavat nejaky worker, ktery bude postupne aktualizovat stav v databazi. z prohlizece se pak budes periodicky ptat na stav zpracovani.

obecne neni dobry napad nechat request bezet nekolik minut, ruzne prvky (browser, proxy, http server) se mohou zacit chovat nepredvidatelne a treba timeoutovat nebo opakovat pozadavek. mam s tim cerstvou zkusenost :)