[ vujkev @ 13.09.2010. 11:37 ] @
Ukoliko na sajtu imam npr 10 usercontrol-a da li za svaku da pravim poseban CSS fajl ili da sve stilove stavljam u jedan "master" CSS. Šta je najbolje?
[ cteba @ 13.09.2010. 13:21 ] @
Stavi sve u jedan fajl.
[ Boris B. @ 13.09.2010. 13:30 ] @
Citat:
vujkev: ... Šta je najbolje?

Citat:
cteba: Stavi sve u jedan fajl.

Zasto je to najbolje?
[ galahad @ 13.09.2010. 13:32 ] @
Citat:
Boris B.: Zasto je to najbolje?

Zato što ona browser ne mora npr. da otvara deset konekcija, da bi uzeo deset CSS fajlova, već samo jednu, da uzme jedan fajl.
[ Boris B. @ 13.09.2010. 13:57 ] @
To je veoma diskutabilno i IMHO svako ima licnu preferencu.

Kao prvo konkretna *konekcija* se uspostavlja jednom, ostalo su samo razliciti HTTP requesti u istoj konekciji, sve dok se komplenta strana ne ucita ili AJAX je ne odrzi otvorenom (to je uveo HTTP/1.1).

Kao drugo, ako je tvoj WebServer takav da preuzimanje vise CSS fajlova ugrozava stabilnost ili brzinu servera onda to nije dobar server, treba bolji da ne bi puklo na goru stranu - sta ako HTML stranica sadrzi 10 slika vise i opet smo na istom. Na stranu to sto se CSS fajlovi kesiraju i svaki sledeci put se na osnovu headera utvrdjuje da li zaista treba ponovno preuzimanje ili koriscenje kesa. Cak i broj requestova moze da se smanji sa codebehind css-om koji na zahtev za npr. master.css zdruzi sve CSS-ove u jedan master.css.

Sa druge strane koriscenje zasebnih CSS-ova za usercontrole je po meni veoma smisleno ako ces te iste userkontrole koristiti kao parts-e u ostalim projektima, jer ja to gledam iz perspektive nekoga ko treba to da odrzava i par godina posle primopredaje projekta.
[ virtualVoid @ 13.09.2010. 15:08 ] @
Ja sam do sada vidjao odvojene CSS fajlove samo kada se sajt razvija za vise uredjaja, pa onda naprave poseban mob css, poseban tablet css, itd.

Ako te bas brine velicina CSS fajla, onda pogledaj kolika je finalna velicina pa shodno tome razbij CSS fajl u vise logickih fajlova. Nesto mi nema logike da ih razbijas po kontrolama. Radije prema funkcionalnosti.
[ vujkev @ 13.09.2010. 15:16 ] @
Ne brine mene ništa, nego me samo zanima šta se pokazalo kao najbolje rešenje
[ virtualVoid @ 13.09.2010. 16:47 ] @
Najbolje rjesenje je logicka optimizacija.
[ cteba @ 14.09.2010. 07:53 ] @
Postoji ogranicenje po broju paralelnih konekcija ka nekom domenu. Preporuka HTTP 1.1 specifikacije je 2 konekcije mada noviji brovseri idu i na 4 i 6.

Zbog toga ako imas puno fajlova moze se desiti da se stranica dugo ucitava, sto odbija korisnika.

Zato je preporuka da se css stavi u jedan fajl.

Isto se radi sa manjim grafickim elementima koji se spakuju u jedan sprite.



[Ovu poruku je menjao cteba dana 14.09.2010. u 09:07 GMT+1]
[ Shadowed @ 14.09.2010. 08:06 ] @
Ne mora to obavezno biti tako.
Ukoliko imas veliki css fajl ali na pojedinim stranama koristis samo pojedine, manje delove onda je bolje razdvojiti.
U svakom slucaju, opste resenje je:

Citat:
virtualVoid: Najbolje rjesenje je logicka optimizacija.


Razmislis o konkretnom slucaju i uradis kako je u tom slucaju najbolje.
[ vujkev @ 14.09.2010. 08:36 ] @
A sad još jedno pitanje... šta je po vama veliki CSS?
[ branimir.ts @ 17.09.2010. 22:01 ] @
@vujkev Lepo ti je rekao Shadowed logicka optimizacija

@cteba
Citat:
Postoji ogranicenje po broju paralelnih konekcija ka nekom domenu. Preporuka HTTP 1.1 specifikacije je 2 konekcije mada noviji brovseri idu i na 4 i 6.
Ne znam o cemu govoris ali nebitno, slazem se da user expirience ne sme da trpi zbog slowly loading portala

Uvek je bolje da se naprave posebni fileovi za CSS i da se nazovu po nekoj konvenciji, optimizacija je nesto sto ide na kraju i obicno se napravi CGI ili za IIS HTTP module koji ce sve contente tipa .css .js etc komprimovati i poslati stream nazad do klijenta (pogledati System.Web.Compression - postoji jos od verzije 2.0)
[ toxi_programer @ 18.09.2010. 20:15 ] @
Citat:
vujkev: A sad još jedno pitanje... šta je po vama veliki CSS?

Hah pa to je kao da cure pitaš šta je po vama veliki... css?
Drugim rečima - zavisi od slučaja do situacije. Ako praviš sajt kao što je youtube.com tu posetioci imaju visok kvalitet konekcije( bar očekivao da je ovo slučaj) onda css fajl od 3,4 hiljade redova nije veliki. Isti fajl za "srpski sajt" bi bio preveliki, gde se da predpostaviti da određeni korisnici imaju dial up, koji bi samo css fajl učitavao par sekundi.

U drugom slučaju bolje je podeliti css. Dakle, gledaj da to izračunaš kroz brzinu kojom korisnik učitava stranu.
[ branimir.ts @ 18.09.2010. 21:40 ] @
@vujkev
Umesto da razmisljas o velicini css file-a, potrudi se da upoznas namespace koji sam ti naveo dole (ako ne hostujes aplikaciju na IIS7), da otkrijes alate za white-space removal i da naravis ili nabavis modul (ISAPI filter) css,js combiner - koji ce sav content spakovati u jedan file (u runtime-u) gzipvati i vratiti nazad do klijenta.

Ovo je samo jedan od koraka u procesu optimizacije.