Late vkládání css / js při používání form prvků

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
marau
Člen | 50
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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:-)

marau
Člen | 50
+
0
-

Nicotný to možná je při počtu několika desítek nebo stovek návštěv za den, pokud jsi ale nékdy délal web s návštěvností několika desítek tisíc / den tak tam už je každé otevřené spojení na server celkem znát.