Chiamate cookieless in Drupal

 
Front end performance di Drupal

Come visto negli articoli precedenti riguardanti le chiamate cookieless e le ottimizzazioni del front end di Drupal ci sono diversi modi per migliorare il modo in cui è possibile effettuare l'ottimizzazione del frontend. Ora vedremo come integrare alcune delle cose viste nei due articoli precedenti e come migliorare ulteriormente le performance con Drupal.

Nel caso visto precedetemente del tracciamento con Google Analytics l'operazione è abbastanza semplice, si tratta di andare all'interno della pagina di amministrazione del modulo Google Analytics (quindi Admin » Settings » Google Analytics) ed impostare all'interno del campo Code snippet (before) la scritta:

pageTracker._setDomainName(".www.demo.tdl");

dove dovrete sostituire il nome di dominio con quello del vostro sito.

Per quanto riguarda getClicky, invece, è necessario andare a patchare il modulo usando la patch che trovate allegata a questo documento. Vi ricordo che per applicare una patch è necessario eseguire il comando:
patch < nome-file.patch
quindi per patchare il modulo getclicky eseguiamo i comandi:

wget http://mavimo.org/files/clicky-fix-crossdomain-tracking.patch
wget http://ftp.drupal.org/files/projects/getclicky-6.x-1.4.tar.gz
tar -xzf getclicky-6.x-1.4.tar.gz
patch < clicky-fix-crossdomain-tracking.patch

Un altro problema noto è dato dal fatto che il javascript che setta il cookie has_js utilizza il nome di dominio generico, pertanto è necessario andare ad effettuare un piccola modifica al javascript misc/drupal.js andando a sostituire la riga:

document.cookie = 'has_js=1; path=/;';

con

document.cookie = 'has_js=1; path=/; domain=.' + location.hostname + ';';

Anche in questo caso potete usufruire della patch che trovate allegata a questo articolo:

wget http://mavimo.org/files/drupal-js-fix-crossdomain-tracking.patch
patch < drupal-js-fix-crossdomain-tracking.patch

Proseguiamo ulteriormente andando a eliminare i cookies per le immagini (che troveremo nel dominio img.demo.tdl).
Per comodità (non necessitiamo di una vera CDN [1]) il sottodominio punta alla stessa directory di Drupal, in modo da poter usare tranquillamente i preset di imagecache per la gestione delle immagini. Purtroppo in questo modo, però, il sistema creerà sempre il cookies. Per evitare questo creiamo un installazione multisite del nostro server immagini in modo che le chiamate verso di questo vengano effettuate su uno spazio configurato per non servire cookies.

All'interno della nostra directory sites troveremo quindi:

sites/www.demo.tdl/settings.php
sites/www.demo.tdl/default.settings.php
sites/www.demo.tdl/files
sites/img.demo.tdl/settings.php
sites/img.demo.tdl/default.settings.php

Per far si che all'interno del sottodominio immagini non vengano aggiunti cookies è sifficiente andare a commentare, all'interno di settings.php della configurazione di img.demo.tdl la parte:

ini_set('arg_separator.output',     '&amp;');
ini_set('magic_quotes_runtime',     0);
ini_set('magic_quotes_sybase',      0);
ini_set('session.cache_expire',     200000);
ini_set('session.cache_limiter',    'none');
ini_set('session.cookie_lifetime',  2000000);
ini_set('session.gc_maxlifetime',   200000);
ini_set('session.save_handler',     'user');
ini_set('session.use_cookies',      1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid',    0);
ini_set('url_rewriter.tags',        '');

inserendo subito dopo:

ini_set('session.use_cookies',      0);

Che eviterà di avere, a questo punto, le chiamate con i cookies. Firebug e Page Speed ringrazieranno :)

Per la gestione delle immagini su sottodomini differenti, sopratutto per le immagini generate da imagecache, vi sono diversi modi, quello che utilizzo è dato da un modulo che ho scritto che si occupa proprio di riscrivere il path, ma poteste benissimo usare CDN, anche se lo trovo fin tropo complesso per simulare una CDN al solo scopo di evitare le chiamate tramite cookie agli assets.

AllegatoDimensione
Patch per GetClicky1.53 KB
Patch per Drupal493 byte

Altri contenuti che potrebbero interessarti

  • Drupal si occupa esclusivamente della validazione lato server delle informazioni, ma spesso è consigliabile prevedere ad una prima validazione dei dati inseriti dall'utente lato client, in modo da evitare l'invio della richiesta limitando quindi le possibilità di errore. Ovviamente la validazione...
  • Esempio di vista generata dall'integrazione del nostro modulo con views
    Alzi la mano chi non ha mai usato views. Alzi la mano che l'ha mai usato. Ok, non proprio tutti ma buona parte di voi ha alzato la mano, questo perchè è sicuramente uno strumento potentissimo per la visualizzazione delle informazioni, quindi è fondamentale (o comunque molto utile) andare ad...
  • Pagina di ricerca con filtri dinamici nelle views
    Le viste sono uno strumento estremamente potente e permettono di andare ad elaborare le informazioni creando degli elementi (pagine, blocchi, ...) di presentazione. La possibilità di usare dei filtri esposti ne fa degli strumenti adatti alla creazione di strumenti di ricerca dei contenuti. L'...
  • Chi avesse iniziato ad utilizzare Drupal 7 si sarà senz'altro d'accordo che stanno nascendo dei temi di partenza molto sofisticati da cui partire per la realizzazione di temi, in particolare sta emergendo sempre più Omega 3. Questi temi, però possono avere necessità di essere estesi per aggiungere...

Commenti

Invia nuovo commento





  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <h2> <h3> <h4> <table> <thead> <tbody> <tr> <th> <td>
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Linee e paragrafi vanno a capo automaticamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.



Condividi contenuti