[ Sauron @ 06.09.2001. 05:56 ] @
Imam jedno pitanje za vas...

prvo...
Evo kako sam ja uradio moj sajt.
Sve stranice za header pozivaju(ssi) header.cgi a za footer footer.cgi

pr. <!--#exec cgi="cgi-bin/template/header.cgi"-->

a svaka od ovih skripti stampa html kod.

Na vrhu stranice sam stavio "random quote"(koga izvrsava header) koji se naravno svaki put menja.

A sad pitanje...

Posto je svaki put sadrzaj koda koga obradi header.cgi (minimalno) drugaciji zbog radnom quotea, da li ce se to odraziti na duzinu ucitavanja.
Tj. Da li ce se svaki put ucitavati iz pocetka.

Da li je sistem keširanja skripte isti kao kod npr. slika.
pr. kada se slika jednom ucita, sledeci put kada dodjemo na istu lokaciju ona se ucitava sa diska.

Kakvo je stanje sa kesiranjem skripta?

Nadam se da ste me razumeli. Ako niste, recite pa cu jos vise pojasniti...

[Ovu poruku je menjao Sauron dana 09-06-2001 u 05:59 AM GMT]
[ mire @ 06.09.2001. 09:37 ] @
Mislim da ne mozes puno da ucinis osim mozda da drzis ceo sadrzaj u nekom statickom fajlu (jednostavnije) ili u shared memoriji.

Npr. uzmes sadrzaj i negde drzis informaciju o tome da li ti se heder ili futer promenio. Ako se promenio ponovo generises sadrzaj. U suprotnom uzimas staticki fajl. Definitivno ces imati vecu brzinu na ovaj nacin sto ti je i cilj.
[ Sauron @ 07.09.2001. 06:15 ] @
Citat:
mire je napisao:
Mislim da ne mozes puno da ucinis osim mozda da drzis ceo sadrzaj u nekom statickom fajlu (jednostavnije) ili u shared memoriji.

Npr. uzmes sadrzaj i negde drzis informaciju o tome da li ti se heder ili futer promenio. Ako se promenio ponovo generises sadrzaj. U suprotnom uzimas staticki fajl. Definitivno ces imati vecu brzinu na ovaj nacin sto ti je i cilj.


Smislio sam jos jedan nacin...
Da izdelim header na tri dela...
Pre reandom quote-a , pa RQ pa ostatak..
Tako ce se samo RQ menjati a ova dva ce ostati ista...
[ dukenukem @ 23.09.2001. 05:37 ] @
jednostavno prebaci u externi javascript file.
[ Sauron @ 27.09.2001. 03:42 ] @
Citat:
dukenukem je napisao:
jednostavno prebaci u externi javascript file.


malo pojasni
[ dukenukem @ 27.09.2001. 23:10 ] @
hm, probacu da budem koncizan:

daklem, stavljanje header-a i footer-a u cgi-script nije bas najbolja ideja, u situacijama kada je brzina ucitavanja bitna. razlog je jednostavan - ako footer ima npr 50 redova koda, tih 50 redova ce da se zalepe na svaku stranicu i svaki put vuku sa servera. i tako, 50 po 50, i ode sve do djavola...

bas nedavno (pre par nedelja) sam optimizovao (sopstveni) sajt (mozes ga videti na http://www.timesystem.ch). elem, na tom sajtu bukvalno sve ide iz cgi-(perl)scripta: preracunava se navigacija prema trenutnoj poziciji i dinamicki izbacuje meni, parsira u glavni deo html-stranica itd. e sad, problem je sto "stalni" elementi (header, footer, leva navigacija, desna navigacija) uzimaju oko 50 kb, za svaku stranicu (razlog je sto su tabele graficki zakomplikovane u p.m. - dizajnerska egzibicija, btw krajnje nepotrebna). dakle, svaki put browser vuce sa servera 50 kb + realan sadrzaj (ono u sredini, tj ono sto je, na kraju krajeva, i bitno).

e sad, kako ovo optimizovati? pa, prosto, uzmes npr funkciju create_menu(), i preradis je na javascript. cgi i dalje racuna stavke menija i podmenija, ali umesto da sam kreira taj menu, samo prosledjuje vrednosti javascript-u. Na primer:

... perl code...

print "<script language='JavaScript'>";
print "var menu_title=new Array(), menu_href=new Array();";
for($i=0;$i<@menu_title;$i++){
print "menu_title[$i]=$menu_title[$i];";
print "menu_href[$i]=$menu_href[$i];";
}
print "create_menu();";
print "</script>";

(au ala ovaj forum jede backslash-ove...)

... funkcija "create_menu()" je javascript funkcija koja se nalazi u eksternom js fajlu, koji prikljucis svakoj stranici, preko:

<script language="javascript" src="externi_js_file.js">

create_menu() izgleda gotovo isto kao sto bi izgledala u perlu (naravno uz razlike u sintaksi), jedino sto sada umesto da imas:

print "....";
print "....";

(itd)

stoji:

var text="";
text+="....";
text+="....";
...
document.write(text);

koja je razlika? pa, kada browser jednom pristupi tom externom js fajlu, iskesira ga i svaki naredni put ga "izvlaci" bukvalno trenutno; bitan deo posla odradjuje cgi (vadi citat, ili sracunava menu, ili skuplja datum, itd, itd), a onda prikaz prepusta client-side scriptu. dakle, umesto velikih blokova koda u cgi-scriptovima, imas jednostavno prosledjivanje parametara i pozive klijent-skriptova.

sto se pomenutog sajta tice, "obavezan" sadrzaj sveden je sa 50 na 8 kb, a brzina je veca 3-5 puta.

nadam se da nisam mnogo zakomplikovao?

[Ovu poruku je menjao dukenukem dana 09-27-2001 u 11:13 PM GMT]