Výpis průběhu časově náročné operace
- microcz
- Člen | 62
Ahoj,
před přechodem na nette jsem generování testovacích dat do databáze
řešil pomocí své pomocné třídy Generator, do které jsem nasetoval
potřebné parametry a nechal ji generovat záznamy. Po vygenerování každého
záznamu jsem echem vypsal id přidaného záznamu a zavolal
flush();
, což mi zajisťovalo, že časově náročné
generování proběhlo až do konce.
Teď bych chtěl udělat následující: ve view (latte šablona) nastavit ve formuláři parametry generátoru, výsledek zpracovat v presenteru, kde vytvořím instanci Generator, předám ji parametry a zavolám požadované metody. Výpis stavu generování bych chtěl zobrazit opět ve view (latte šablona). Nevím si ale rady, jak docílit toho, aby proběhla celá časově náročná operace. Bude zde opět fungovat flush?
- Tomáš Jacík
- Člen | 147
Ahoj,
pokud vím, tak flush nijak nezajišťuje, že něco proběhne. Pouze zařídí vyprázdnění bufferů. tzn. že se to echo pošle hned a ne až po dokončení operace. Na provedení samotné operace to ale nemá vliv.
Pokud chceš po každém kroku operace poslat výstup, tak si budeš muset nějak přetížit Presenter, aby View dělal echo a pak ten flush. V Nette se totiž standardně výstup posílá až po dokončení operace.
Tady dochází k „echování“: https://github.com/…Response.php
A tady se Response použije: https://github.com/…resenter.php#L623
Bohužel více asi neporadím, jsou tu fundovanější než já.