Battle Baptism
După o mică căutare, am reușit să asambleze un mediu de testare în Firefox 3, care folosește codul base64 al imaginii în formular. ico. A fost posibilă realizarea unei imagini monocrome (paletă de 4 biți) de 318 octeți (față de 894 standard, mai puțin de 3 ori). Cu o paletă de 2 biți, dificultățile au apărut sub Safari, nu a fost posibil să se obțină rezultatul corect, dar este, de asemenea, posibil să se folosească. Poate că cineva va părea că 576 de octeți sunt foarte puțini. Dar este de remarcat faptul că, în primul rând, unele icoane utilizează doar 2 culori, astfel încât acestea pot fi comprimate la o dimensiune chiar mai mică. În al doilea rând, pentru mărimile mari (32x32, 48x48), procentajul câștigător va fi același. Adică, icoanele în 16 KB pot fi reduse liniștit la fiecare 3-7. Și aceasta este fără a lua în considerare tăierea cadrelor neutilizate în ele (deoarece formatul vă permite să creați icoane animate).
Dimensiuni optime
Prin calcule simple ale rubricilor, deplasărilor și paletelor, puteți obține unele numere pentru dimensiunea celor mai standard favicon .ico (dimensiunea imaginii este de 16x16 pixeli). Pentru 32x32 și 48x48, dimensiunea fișierului ar trebui să crească cu aproximativ 4 și respectiv 9 ori.
Tabelul 2.4. Mărimea fișierului fikicon .ico 16x16, în funcție de paleta utilizată
Dimensiune (în octeți)
Pentru pictogramele dinamice, puteți înmulți în siguranță dimensiunea unei singure pictograme după numărul de cadre, deoarece antetul pentru întregul fișier este de numai 62 de octeți, principala parte fiind datele.
PNG - a fi sau nu?
Și dacă stoarceți?
Dacă nu putem folosi în mod adecvat formate normale (PNG.GIF) pentru a reprezenta favicon .ico, de ce să nu folosim compresia gzip pentru a le oferi browserului client? Poți. Și toate browserele actuale înțeleg acest lucru. Mărimea face astfel aproximativ 300 de octeți (scade de 3 ori în comparație cu cea inițială). Din nou, este vorba despre posibilitățile de a reduce favicon .ico în general, și nu despre numerele absolute. Dacă aveți deja compresie pe server, trebuie doar să adăugați compresia pentru imaginea / pictograma x și să uitați de ea.
date: URI ne va salva?
concluzie
Unul dintre momentele cele mai controversate din prezentarea Yahoo! a existat o declarație conform căreia favicon .ico "interferează" când pagina este încărcată. După cum se poate vedea în jurnalele de server, atunci când se încarcă pagina, fișierul este, de fapt căutat undeva în mijlocul procesului global de boot, după aproximativ fișier CSS și imagini de fundal, astfel încât procesul de optimizare poate fi una dintre cheile pentru îmbunătățirea sarcinii la momentul primei vizite (cu o memorie cache goală).
De asemenea, doar de dragul de respect pentru utilizatorii (de ce au nevoie pentru a încărca suplimentar 10 KB de cod care este redat în zona lor de 16x16 pixeli?) Nu este necesar să se umfle dimensiunea sa în mod inutil. Respectați-vă vizitatorii.
Taie cookie-ul
Ca o coardă finală, atunci când se ia în considerare reducerea numărului de date transmise între server și client, este necesar să se menționeze cookie-ul.
Fișierele cookie sunt unul dintre http-headers pe care browserul le trimite la server. iar serverul are dreptul să răspundă (dacă sapa mai adânc, există câteva antete: Cookie și Set-Cookie - dar în acest caz nu este atât de important). Dimensiunea totală a anteturilor http nu depășește de obicei 500-1000 de octeți, dar cookie-urile pot crește semnificativ (deoarece acestea sunt limitate la 4 KB).
Cu volume de informații utile de câteva KB, dimensiunea cookie-ului poate avea un impact critic asupra ratei de date. Să ne uităm la modalitățile prin care aceste costuri pot fi reduse.
Optimizați dimensiunea, zona și ora acțiunii
În majoritatea cazurilor, utilizatorul pur și simplu nu trebuie să transfere seturi uriașe de date de fiecare dată - este destul de posibil ca el să se limiteze doar la cheia sesiunii. În urma acestui lucru este necesar să reanalizăm logica folosirii anteturilor cookie și să lăsăm doar cele necesare.
În mod alternativ, puteți seta cookie-ul numai pentru anumite secțiuni de pe site sau poate fi limitat doar la sesiunea curentă a utilizatorului de pe site (care nu va fi salvat când reintroduceți).
De asemenea, cookie-ul poate varia data de expirare, care va fi oarecum neutraliza efectul lor, în cazul în care utilizatorul va intra pe site-ul rar: cookie din browser-ul va fi transmis cu fiecare nou de asteptare, dar acestea vor fi trimise la server. Prin urmare, această măsură nu crește în mod deosebit productivitatea.
Gazduire pentru componente fără cookie-uri
Pentru proiectele puternic încărcate care utilizează în mod activ cookie-uri și tind să reducă la minimum costurile de la acestea, merită luată în considerare posibilitatea de a scoate resurse statice într-o gazdă separată. pentru care cookie-ul nu va fi instalat deloc.
În acest caz, este posibil să se ia în considerare utilizarea subdomeniul (care poate fi inutilă dacă sunt expuse pe cookie * .domain.ru) sau domeniu de nivel superior (în acest caz, este necesar să se înregistreze domeniu separat pentru stocarea resurselor statice). Cu toate acestea, în ambele cazuri pot apărea probleme cu serverele proxy locale: pot refuza să cacheze fișiere din domenii fizic diferite.