Generování náhledů obrázků – signály nebo jinak?
- sairon
- Člen | 32
Řeším tu teď problém, jak implementovat generování náhledů pro prohlížeč souborů v Texyle. Příjemné je to přes signály, ale má to jeden háček – generování jednoho náhledu trvá stovky milisekund až vteřiny – všechno je totiž volání presenteru a už při deseti obrázcích je sakra znát, že prochází většinou jeho životního cyklu – jednou již vygenerované obrázky jsou uložené a u nich se provede jen redirect, ale i to je příšerně pomalé. Vytvořením komponenty, která tohle bude obstarávat, si asi nijak nepomůžu, na druhou stranu se nechci okrádat o autoloading tříd, proměnné nastavené v aplikaci a v neposlední řadě nechci přesouvat skripty toto obstarávající do document rootu. Ale nevím, jestli je tu jiné řešení a stejně tak by mě zajímalo, jestli můj přístup není nesmyslný :) Řeším tak i generování náhledu a vrácení seznamu souborů, tam se ale ta pomalost tak neprojevuje, protože to je jen jeden request.
Edit: Tak si říkám, že implementovat to jako komponentu bude asi chytřejší, když budu chtít Texylu přesunout do jiného presenteru, bude stačit zaregistrovat komponentu. Ale řekl bych, že to problém s rychlostí nevyřeší…
Editoval sairon (8. 2. 2009 18:27)
- ViliamKopecky
- Nette hipster | 230
sairon napsal(a):
Ano, nakonec jsem se k tomu dostal. Nevím, proč mě to nenapadlo hned na začátku… Nějak jsem měl nutkání to udělat celé dynamicky, přitom to vlastně není potřeba.
No, já to také řešil, ale důvod byl ten, že jsem tak nějak počítal s časem proměnlivou velikostí náhledů.
- ViliamKopecky
- Nette hipster | 230
sairon napsal(a):
A jak jsi to nakonec vyřešil? Protože, jak jsem řekl, než to dojde ke zpracování signálů, tak to trvá nepříjemně dlouho (při větším počtu náhledů). Sice s „nekompaktní“ verzí Nette, ale řekl bych, že s kompaktní verzí by se to nezměnilo zas o řád (ale o polovinu možná jo).
Výkonnost jsem neřešil :) udělal jsem si ThumbPresenter
–
u něj by sis moh změnit životní cyklus, takže by některé fáze třeba
přeskočil, ale nevim kolik výkonu by to ušetřilo.