
Tinklapių kūrėjai, sukūrę produktą, dažnai imasi jį optimizuoti, arba optimizavimas vyksta kūrimo metu. Tačiau ir optimizavimas gali būti labai įvairus - nuo patogesnės vartotojo sąsajos iki PHP skriptų vykdymo laiko mažinimo. Vienas iš svarbių optimizavimo aspektų yra paprastas, bet dažnai pamirštamas - tai yra tinklapio "svoris", tai yra kiek kilobaitų užima puslapis diske kartu su visais paveiksliukais bei kitais objektais (flash, video ir kt.).
Iš tiesų, šita problema buvo daug aktualesnė anksčiau, kai interneto greitis nedidėjo tokia progresija, o ir patys kompiuteriai būdavo silpnesni. Tad, tarkime, prieš penkeris metus buvo duodamas patarimas, kad visas puslapis su paveiksliukais turi sverti ne daugiau negu 50 KB. Nors vėlgi priklauso nuo tinklapio nišos, struktūros bei auditorijos. Anksčiau būdavo mažiau didelių naujienų portalų, tinklaraščių kaip tokių iš viso nebuvo, pats internetas buvo "paprastesnis". Be to, tinklapių grafinis dizainas buvo daug paprastesnis, mažai kas naudodavo sudėtingus elementus, tik po kiek laiko išpopuliarėjo Flash technologija, dar vėliau paplito video filmukų įdėjimas į puslapį, taigi dabar turime tokius tinklapius, kuriems dažniausiai neužtenka tik teksto, HTML elementų ir CSS stilių. Bet, kita vertus, ir interneto ryšys yra daug greitesnis bei kompiuteriai yra galingesni, o ir naršyklių technologijos stipriai pažengusios į priekį, nors naršyklės ir kariauja tarpusavyje dėl vartotojų skaičiaus.
Kaip gi galima sumažinti puslapio svorį
Puslapis dažniausiai susideda iš teksto, HTML/CSS/JavaScript elementų ir "išorinių" objektų - paveiksliukų, video ir kt. Kiekvieną iš šių dalių galima optimizuoti, t.y. suspausti.
1. Tekstas: jis sąlyginai užima mažiausiai vietos diske, o būtent tekstas kaip taisyklė yra vienas svarbiausių galutinių rezultatų vartotojui, tad jį suspaudinėti faktiškai neverta.
2. HTML/CSS/JavaScript: šituos dalykus paėmiau bendrai, nors iš tikro JavaScript gali būti aptariamas ir atskirai, kadangi ten gali būti gana daug sveriančių objektų, ypač jei naudojamos kokios nors išorinės konstrukcijos. Na bet bendrai tariant, vis tiek tai yra kodas, kas realiai taip pat yra tekstas, tad iš šių tekstų suspaudimo dažnai netyčia galime ištrinti ar sugadinti kokią nors kodo dalį, kas yra daug svarbiau negu koks vienas kilobaitas svorio. Tad šioj vietoj patarčiau optimizuoti tik tada, kai norite iki maksimumo sumažinti puslapio svorį arba žinote, kad jūsų lankytojų interneto ryšys yra prastas.
3. Išoriniai objektai: vat čia ir yra bene svarbiausias dalykas. Būtent išoriniai objektai - paveiksliukai, video ir kitokie "įskiepiai" - užima daugiausiai vietos. Po paveiksliukais turiu omeny ir fono paveiksliukus (jei tokie yra), ir į straipsnių vidurį įkeltus paveiksliukus, ir flash'o filmukus. Būtent juos galima suspausti stipriausiai, neprarandant bendros kokybės. Bent jau paveiksliukus proto ribose tikrai galima suspausti - pasirinkti tiknamą formatą (jpg, gif, png), pasirinkti tinkamą kokybę (Photoshop'e juk galima nurodyti, kokia kokybe saugoti nuo 1 iki 12). Kitas dalykas - kalbant apie visokius video įskiepius, jie vis tiek kraunami dažniausiai atskirai - iš youtube ar kitų tinklapių, į tinklapį įkeliamas tik objektas su nuoroda. Tačiau bendrai vis tiek reikia siekti sumažinti tokių objektų skaičių viename puslapyje. Tai yra, jei viename puslapyje bus 10 tokių video objektų, tai atitinkamai tinklapis krausis ilgiau.
Kaip sužinoti puslapio svorį
Yra toks paprastas, tačiau labai naudingas įrankis: Page Size Extractor

Su jo pagalba galima sužinoti ne tik bendrą puslapio svorį, bet ir gana detalią jo elementų ataskaitą. Iš jos galima spręsti, ką būtent optimizuoti ir kas ilgiausiai kraunasi. Be abejo, rezultatų pateikimas kažkiek užtrunka, tačiau, kiek pats bandžiau, nei vienam tinklapiui rezultatai nebuvo generuojami ilgiau nei 30 sekundžių. Pažiūrėkime, kiek gi "sveria" kai kurie įdomūs tinklapiai:

Iš pirmo žvilgsnio, 688 kilobaitų yra labai daug kaip vienam puslapiui. Tačiau šiuo atveju skaitykit.lt tinklaraštyje tiesiog priimtas sprendimas vaizduoti 40 įrašų pirmąjame puslapyje, dėl to kiekvienas iš jų su paveikslėliu ir sudaro didelį svorį. Pats tekstas, kaip matote, užima tik apie 34 KB (34 415 baitus), o su visu HTML/CSS kodu - 104 KB (104 403 baitus).

Čia situacija dar įdomesnė. Be konkurencijos geriausio Lietuvos tinklaraščio nezinau.lt pradinis puslapis užima dar daugiau vietos - beveik megabaitą! Tačiau neskubėkime jo smerkti, juk pateikiama tiek daug naudingos informacijos viename pradiniame puslapyje. Bent man užeinant į pirmą nezinau.lt puslapį, nekyla pagunda išeiti vien dėl to, kad puslapis ilgai krautųsi - juk straipsnių daug, tai suprantama. O be to, yra kitas dalykas - nezinau.lt naudojami paveiksliukai yra sunkesni nei skaitykit.lt, tai yra geresnės kokybės, pats tekstas užima net mažiau vietos (tekstas - apie 30 KB, o su visu HTML/CSS - 82 KB). Būtent iš paveiksliukų ir susidaro beveik 300 KB skirtumas. Pažiūrėkime dabar į delfi.lt:

Galvojote, kad čia svoris tikrai viršys megabaitą? Juk tinklapis didžiulis, labai daug teksto, visokių nuorodų, reklamų, banerių ir kitų dalykėlių. Tačiau būtent čia tinklapio autoriai, žinodami bendrą informacijos svorį, gerai padirbėjo su paveiksliukų optimizavimu: dauguma paveiksliukai yra GIF formato (jis užima mažiau), o ir bendrai paveiksliukų svoris yra sąlyginai mažas. Kalbant apie grafines apiforminimo detales, čia apsieita su minimalia grafika, pritaikant tiesiog CSS stilius laiku ir vietoje. Nesakau, kad delfi yra gražiausias puslapis, bet, mano manymu, apiformintas tinkamai naujienų portalui, bet ir, kita vertus, ne visiškai juodai-baltas kaip laikraštis.
Išvados
Koks gi yra optimalus puslapio svoris? Kaip matėme pavyzdžiuose, daug informacijos turintiems tinklapiams 500 KB yra normalu. Kitais atvejais - sakyčiau apie 100 KB yra norma. Tačiau vis tiek, bendras principas - vertėtų optimizuoti tai, kas ženkliai sumažintų bendrą svorį. Persistengti, be abejo, irgi neverta, nes nuo 1-2 KB bendras vaizdas nepasikeis (nebent esate pedantas).




2009-01-06





Sausis 7th, 2009 2:59 pm
Tekstą galima spausti su gzip (php arba apache pagalba) - būtų sutaupytas ne vienas ir ne du kilobaitai didesnių svetainių atveju.