Melanconie e pensieri su CSS e compressioni Gzip

gzipOggi ragionavo sul fatto che nelle mie interfacce grafiche faccio un uso massiccio di gradienti, bordini di un 1px di dimensione e piccole altre tecniche per aumentare il contrasto tra gli elementi e dargli un aspetto un po’ più 3d.

Questo approccio, sebbene mi soddisfi a livello di risultato finale, in termini di complessità della proposta grafica la aumenta di molto trasformando la conversione in HTML talvolta in un piccolo incubo. L’affermazione “Dio sta nei dettagli” quando hai da finire il lavoro entro… ADESSO! è difficilmente accettabile (più volte inaccettabile) e si finisce per omettere qualche particolare chiudendo entrambi gli occhi.

Fortunatamente la situazione tecnica si semplifica (vedremo eh, proviamo a fare un gradiente multiplo in CSS…) sempre di più e con CSS3 un buona parte di quegli effetti sarà possibile riprodurla tramite il foglio di stile.

Oltre a semplificare la conversione della grafica, sicuramente anche la dimensione della pagina finale HTML ne beneficerà non dovendo scaricare tutto quel contenuto di immagini. Al contrario però il peso dei CSS andrà ad aumentare.

Molto si è parlato dell’ottimizzazione delle pagine web ultimamente e risolte le sottigliezze tecniche su JS e numero di richieste HTTP contemporanee, le vere panacee sono un buon utilizzo del caching (di cui max ci ha già parlato) ed avere la possibilità di comprimere durante la trasmissione CSS, JS e HTML tramite gzip.

Il concetto è semplice: il browser quando fa una richiesta al server indica attraverso ad un header (Accept-encoding) che è in grado di interpretare contenuto compresso e compresso con quale algoritmo. Il server legge questa informazione e se trova compatibilità di argomenti comprime il contenuto e lo manda al browser con dimensioni notevolmente ridotte (si parla credo del 30% dell’originale, alla fine si tratta di testo…).

Mi stavo appunto informando su questo argomento quando mi sono imbattuto in un articolo che parla del fatto che nonostante “tutti” i browser abbiano questa capacità, circa il 15% degli utenti (dati estratti da Google) manda un header non appropriato alla reale capacità del loro browser e la conseguenza è che il server non comprime i contenuti. Bhé, visto che la banda è tutto, qualcuno in Google ha ben pensato che forse tutto questo spreco è inutile e ha deciso di trovare un modo per evitarlo forzando la compressione.

In pratica solo se il browser manca di mandare l’informazione di compressione, la pagina caricata crea un IFRAME che richiede al server un documento SEMPRE compresso. Se il browser non riesce a leggerlo, ok, ci hai convinti, non sei capace, se invece riesce a leggerlo, ecco che le chiamate successive al server verranno automaticamente compresse al di la di quello che afferma il tuo browser.

Questa cosa non so perché mi ha in qualche modo affascinato nella sua perfezione di ragionamento (e ciò dovrebbe indicare il mio attuale stato mentale). Detto questo, augurando al mondo che l’ottimizzazione non diventi un fanatismo mi chiedo se scrivere testualmente un gradiente in CSS (che come avrete capito è la mia ossessione) talvolta non sia più dispendioso che creare un’immagine di 1px di largezza e alta 20px per poi ripeterla all’inifinito in modo un po’ vintage e creare proprio un bel bottone :)

Mah ahimè da tempo mi sono arreso al fatto che in verità non è nelle mie possibilità controllare tutto questo. It’s the evolution baby!

Lascia un commento

Tutti i campi sono obbligatori.
L'indirizzo email non verrà pubblicato

Commenti

  1. avatarTarDryday

    At the Zoo
    A man was delivering penguins to the zoo when his van broke down on the highway. A fellow stopped to see if he could be of assistance. “Oh, I’m in some real trouble here” said the first man. “I’ve got to take these penguins to the zoo today, and now I’m not sure I’ll get there.”

    The helpful fellow volunteered to put the penguins in the back of his car and take them to the zoo. The man with car trouble gratefully accepted this offer and promised to get to the zoo as soon as possible.

    A little later, the man was on the road again and went immediately to the zoo. He looked everywhere but did not see the helpful fellow or any of the penguins. In a panic, he drove back into town. Just as he was wondering what in the world to do next, he saw the “volunteer” walking across the street with all the penguins waddling along behind him.

    He ran up and said, “What are you doing here? I thought you were going to take the penguins to the zoo!” and the volunteer replied, “I did, and we had such a good time there, we decided to come into town for ice cream.”

    Moral: When working with volunteers, clear instructions and good training is always necessary.

  2. avatarlmdm

    Le magasin de magie est le numéro 1 de la magie à prix discount.

    Pourquoi payer plus cher, le magasin de magie vous propose un large choix d’articles pour magiciens au meilleur prix.

    Apprécié et choisi par de très nombreux magiciens en France, en Belgique, au Luxembourg et en Suisse, le magasin de magie vous livre en 48 heures en France et en 72h dans toute l’Europe.

    Vous trouverez également toutes les nouveauté de la magie grâce à nos fournisseurs basé aux USA.

    Découvrez notre large choix de tours de close-up, tours de cartes, tours de pièces, tours spécial débutants, tours de mentalisme, tours de scène…

    Nous vous offrons des promotions chaque mois ainsi qu’un programme de fidélité extrêmement performant qui vous offre régulièrement des bons d’achat.

    Prenez une petite minute pour visiter notre site et nous espérons que vous nous ferez confiance pour vos prochains achats magiques.