AfterRender, webloader, akce ještě před samotným generováním šablony?
- mcmatak
- Člen | 504
Určitě používáte webloader, nebo něco podobného, funkce:
připojení js nebo css a v layoutu v head se vytvoří link na js nebo css, obvykle to má i funkce jako obfus js nebo css, komprimaci, spojení do jednoho souboro a jeho kešování např.
nicméně můžete mít i komponenty které chtějí používat nějaké js, pak tedy js attachnete v attach, problém je když komponenty používáte jako widget, tedy systém o nich ví poprvé až při zpracování šablony, což už je pozdě protože js je už zkomprimovaný a nakešovaný, kešování se provedlo v layoutu
jak na nějaký workaround? rozchodit afterrender, kde bych mohl zjistit jaké komponenty budou v šabloně potřeba a tak provést jejich attach před samotným vykreslením se mi rozchodit nepovedlo
co vy na to? je snad srozumitelné o co mi jde?
- Honza Marek
- Člen | 1664
Já ti rozumim. Ale osobně takové dodatečné soubory vkládám zvlášť. Jeden CSS soubor není žádný ideál, ke kterému je potřeba se upnout. Pokudu budeš mít třeba 40 kB společné css a na každé stránce jiných 2 – 3 kB navíc, tak připojením těchto souborů do hlavního CSS rozhodně data neušetříš.
- xificurk
- Člen | 121
Jo, něco podobného už jsem psal… https://forum.nette.org/…vani-widgetu?…
Hlavní nevýhodu současného stavu vidím v tom, že pro použití komponenty nestačí „jen“ nakopírovat její kód někam do app, vytvořit továrničku a použít {widget componentXYZ}, ale je potřeba myslet na to, že některé komponenty potřebují externí css, js. Je to další věc, na kterou je potřeba myslet. Rozhodně se mi současný stav příliš nezamlouvá a přidávám se k mcmatakově požadavku.
- Honza Kuchař
- Člen | 1662
Já také, ale to už jsme řešili na poslendní sobotě. Protože šablona se kompiluje, tak by bylo fajn, kdyby se při překládání informace o tom, kde je jaký widget někam ukložila. Tím by se přes nějaké statické metody daly načíst ty externí soubory.
- David Grudl
- Nette Core | 8228
V podstatě podobně interně fungují „nové“ snippety. Informace získané z kompilování šablony se využívají ještě před započetím renderování. Teď jde jen o to, jak to zobecnit, aby se na stejný mechanismus daly připínat vlastní handlery, například pro natahování CSS a JS souborů.
- Vyki
- Člen | 388
Nevím jestli to chápu dobře, ale jednalo by se o novou fázi v životním cyklu aplikace?