[ zgas @ 07.12.2009. 16:50 ] @
Interesuje me da li brovzeri podrzavaju to da u html kodu bude postavljen link ka gzipovanom javaskript fajlu (zbog przine prenosa podataka internetom). I da li se to prektikuje.

Kao:
Code:
<script type="???" src="http://domen.com/fajl.js.gzip"></script>


Da li upste brovzer moze u letu otpakovati i izvrsiti taj JS kod? I ako moze, sta se treba upisati u ona tru upitnika u kodu?
[ agvozden @ 07.12.2009. 17:51 ] @
neki da, neki ne...

zato treba ispitati da li brauzeri podrzavaju kompresije. Obicno se postavi server-sajd skripta koja upravlja isporucivanjem konkretnog fajla.

Brauzer to na kraju kapira stvarno kao text/jscript ili, vec, kako oznacis.

[ Nikola Poša @ 07.12.2009. 17:54 ] @
Većina browser-a nema problema sa otpakivanjem gzip-a u letu, samo je pametno da tu eksenziju promeniš u "jgz", radi bolje kompatibilnosti sa Safari-jem.

btw Jesi možda razmišljao o korišćenju nekih minifier-a i kompresora? Probaj npr. da "provučeš" neki JS kod koji imaš kroz ovaj minifier alat, i videćeš o čemu ti pričam.
[ zgas @ 07.12.2009. 18:05 ] @
Da mogu da minimiziram kod, a razmisljao sam koliko je to gzipovanje isplativo.

Ne znam agvozdene, kako se upravlja isporucivanjem konkretnog fajla sa server-sajd skriptom.
Da li to znaci, da na server strani (npr. PHP) iscita da li browzer podrzava gzip, pa u zavisnosti od toga isporucuje gzipovan ili obican fajl?
[ agvozden @ 07.12.2009. 18:45 ] @
evo ti jedan php skript koji radi na taj nacin:

http://rakaz.nl/projects/combine/combine.phps

a ovde je objasnjeno kako to uraditi:

http://rakaz.nl/2006/12/make-y...-javascript-and-css-files.html

kao sto mu ime govori ovo sluzi i za css.

mozes da provuces prethodno te skripte kroz pakere:

http://www.info-g.biz/alati/js-packer/

ali ukoliko hoces najveci stepen "pakovanja" na ovaj nacin svaki red se mora zavrsavati sa ;.
[ zgas @ 07.12.2009. 19:53 ] @
Vec duze vreme pokusavam da resim problem bas na taj nacin, da dinamicki spajam JS fajlove i kreiram jedan kompresovan.

U vezi sa tim PHP skriptom me interesuje. Da li on prvi minimizuje sadrzaj js ili css fajla, a zatim ga gzipuje, ili ga samo gzipuje? (Pretpostavljam da se gzipovanje radi posle minimiziranja.)

I jos jedno pitanje, posto vidim da se itekako koristi dinamicko grupisanje js i css fajlova, (valjda ne gresim) da li to otvara mogucnost i dinamickog kreiranja CSS fajlova: npr PHP definise variablu sa $backgroundPage = 'red'; i to se koristi kada se kreira CSS fals gde se u klasu body stavi ovaj backgraund?
[ agvozden @ 08.12.2009. 13:36 ] @
ovaj "combine" sluzi da objedini nekoliko fajlova u jedan i isporucuje ih na vise nacina - uglavnom se radi o objedinjenom i gzip sadrzaju.
Da bi izvrsio umanjenje JS-a upotrebi donji alat koji sam naveo u postu. Ukoliko ides na normal nacin kompresije JS mora biti napisan sa striktnom sintaksom...
Za smanjenje css-a koriste se drugi komresori (http://www.info-g.biz/alati/csstidy/) ali treba biti krajnje oprezan sa tim. Trudim se da pisem optimalan css, a onda ga dodatno smanjim ubijanjem suvisnih razmaka, tabova, razdvajaca(;) i osobina(shorthand...).

Dinamicko kreiranje css fajlova nije dobro za ovaj slucaj posto se fajlovi kesiraju na disku. To onda trebas raditi nekim drugim tehnikama.
[ zgas @ 08.12.2009. 19:28 ] @
Jasno mi je da je objedinjavanje fajlova resenje. Cini mi se da je vrlo interesantan nacin na koji to rado ovaj skript "compbine", pa 'agvozdene' ako moze malo da mi pomognes i kazes mi da li sam ga u nacelu dobro razumeo.

----------------
Kako "compbine" prima zahteve koje ce fajlove kombinovati?
Da li su ti zahtevi ustvari prosledjeni od brovzera putem http-a (za odredjene .js fajlove)? Pa taj "combine.php" obradi gzipuje i isporuci brovzeru samo jedan fajl?
----------------
Ja sam to planirao drugacije da uradim mojim sistemom. To jest, prilikom pozivanja neke stranice, PHP skript odmah dobija informaciju koji .js fajlovi se pozivaju, odma ih spoji i gzipuje, a u head trazene stranice upise .js link ka gzipovanom fajlu.
----------------

Ova dva nacina su potpuno razlicita (ako se ne varam), prvi "cobmine.php" od vec ucitane stranice u browzeru dobija http zahtev za odredjenim .js fajlovima koje html strana potrazuje. Dok ovaj drugi nacin, vec na "server side", obradjuje .js fajlove, kombinuje ih i upisuje novi .js fajl link u head html dokumenta.

Da li sam u globalu dobro razumeo ova dva nacina, posebno onaj prvi za "combine.php"?
[ Miroslav Ćurčić @ 08.12.2009. 19:58 ] @
Uz TinyMCE projekat stiže upravo jedan takav "combine" GZIP paker.
Pogledaj kako on radi.
[ zgas @ 08.12.2009. 20:27 ] @
Kakav je? Naveo sam dva razlicita nacina kombinovanja fajlova!
[ agvozden @ 08.12.2009. 21:09 ] @
Kao sto imas u onom dokumentu primer:

pojedinacne skripte:
http://www.mojkvadrat.rs/javascript/jquery-1.3.2.min.js
http://www.mojkvadrat.rs/javascript/jquery.bgiframe.min.js
http://www.mojkvadrat.rs/javas.../jquery.autocomplete.packed.js
http://www.mojkvadrat.rs/javascript/ui/ui.core.packed.js
http://www.mojkvadrat.rs/javascript/ui/ui.dialog.packed.js
http://www.mojkvadrat.rs/javas...ox/jquery.lightbox-0.5.pack.js

to spajas
<script src="http://www.mojkvadrat.rs/javas...ox/jquery.lightbox-0.5.pack.js" type="text/javascript"></script>

jos je potrebno i da uneses izmene u .htaccess fajl inace ces koristiti raw upit:
Code:
RewriteEngine On
RewriteBase /
RewriteRule ^css/(.*\.css) /combine.php?type=css&files=$1
RewriteRule ^javascript/(.*\.js) /combine.php?type=javascript&files=$1


dakle, skripta prima kroz url koje JS treba da objedini, a od samog brouzer zaglavlja da li ovaj podrzava kompresiju. Primetices da su JS vec upakovani, a php skripta ce ih dodatno gzipovati. Tom prilikom ce kreirati i kes fajl koji ce onda pozivati i isporucivati.


znaci, u svojoj skripti samo isporuci pozive za potrebne JS fajlove, a combine ce se sam starati o stvarima koje se isporucuju.

Mislim da ono sto si ti planirao da uradis jeste slicno, ali da sam koncept nije u redu. Na tvoj nacin imaces gomilu fajlova koji mozda nece ni biti pozvani. "moj" nacin ipak radi sa kesiranim fajlovima...

Mislim da sam imao u vidu i taj fajl iz tinyMce-a ali mi se nije svidjao, kao ni neki moj skript koji sam radi davno, radi slicno, ali ne kesira.
p.s. Sada sam primetio da mi ovi fajlovi nisu u APC kesu ;)