Late vkládání css / js při používání form prvků
- marau
- Člen | 50
Zdravím,
rád bych se zeptal, jak řešíte například načítání editorů,
datepickerů, suggesterů apod. ve formulářových prvcích. Trápí mě
hlavně vkládání css a js souborů, nyní je musím všechny vkládat do
hlavní šablony, i když ve výsledku se například editor používá pouze
na 10% stránek a jinde se tak načítá zbytečně. Ve svém předchozím FW
jsem měl u předků formulářových polí možnost zadat cesty k css/js
souborům a ty se do hlavičky vložili až ve chvíli, kdy se zavolalo
například $from->inputText() apod. Je mi jasné, že v každé šabloně
si mohu zavolat (pokud používáme webloader)
{$control->presenter['css']->addFile('sadf')}
ale to mi nepříjde jako ideální řešení. Díky za odpovědi.
- Mikulas Dite
- Člen | 756
Vzhledem k tomu, že si to browser cachuje a většinou se jenom ptá na změnu, není to ani tak moc problém. Dávám všechno do layout.
Jestli to ale chceš dělat jinak, můžeš si podle příkladu v sandbox dát to hlavičky blok, který budou některé šablony extendovat – vepisovat dovnitř include css js.
- marau
- Člen | 50
Jo jasný, jen mi to příjde nečisté, proč bych si měl na homepage načítat všechno, když spoustu těch komponent pak klient ani neuvidí. Ale tak v administraci to asi nevadí a na frontendu si s tím holt dám tu práci. Ono to asi ani jinak vyřešit nepůjde, protože většinou v době vytváření a renderování komponenty už mám <head></head> odesláno.
- Filip Procházka
- Moderator | 4668
http://headjs.com/ nebo http://yepnopejs.com/
YepNope vypadá slibněji, ale HeadJS má aktivnější komunitu, takže osobně mám docela dilema…
- marau
- Člen | 50
Díky za tipy, zkoušel jsem head.js a funguje výborně, propojím si ho s webloaderem (vytváření minifikovaných verzí) a můžu směle nasadit. Zdá se, že to řeší můj největší problém s webloaderem – po jedné změně se přegenerovává celý soubor se všemi scripty.
Editoval marau (8. 4. 2011 9:33)
- arron
- Člen | 464
Ono uprimne, u JS souboru je to jasny, tam je potreba to nejak rozumne vyresit, ale u CSS souboru? Osobne jsem dospel k zaveru, ze CSSko budu mit v aplikaci jenom jedno (popripade nekolik malo nacitanych pohromade), protoze si fakt nedovedu predstavit toho kodera, ktery bude delat sablony tim zpusobem, ze bude editovat desitky souboru se styly nehlede na to, ze na poradi nahravani tech souboru muze dost zalezet…
- marau
- Člen | 50
To je sice hezký, ale v momentě, kdy využiješ například plugin jQueryUI, připojí se ti další stylový soubor, pak další a další, ani se nenaděješ a máš těch souborů 10. Ručně je slučovat je blbost. Nehledě na to že při kódování složitějších webů je dobré styly rozdělit podle logických celků do více souborů (layout.css, forms.css …) a zase ti to naroste a máš opět o pár zbytečných http requestů více.
- arron
- Člen | 464
To je sice pravda, ale tyhle soubory se porad daji nahrat staticky vsechny najednou…nahraji se totiz realne stejne jenom pri prvnim requestu a pak uz se nenahravaji, takze vykonova ztrata je opravdu nicotna:-) Vzhledem k tomu, ze vyhoda je temer nulova, tak me prijde zbytecne to vubec nejak resit. Mam to vsechno v layoutu, stejne se to temer nemeni a nemusim se o to starat…ale chvili mi trvalo, nez jsem k tomuhle nazoru dospel:-)