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 è uno dei migliori CMS (la versione 4.7 è giunta seconda al contest internazionale, subito dopo Joomla, ma con la versione 5 probabilmente si avrà il balzo al primo posto!) in circolazione per la realizzazione di siti nato nel 2001 e giunto ormai alla sua quinta versione...
  • 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...
  • Interfaccia di esempio per la selezione tramite autocompletamento in cascata
    Come spesso capita si utilizzano select per andare a far effettuare delle scelte agli utenti, e come abbiamo visto precentemente è possibile usare le funzionalità ajax per fare in modo che delle select secondarie varino in funzione della prima scelta. Cosa succede, invece, quando si hanno centinaia...
  • La volta scorsa, nel parlare di ottimizzazione del frontend di siti generici (e Drupal in particolare) avevamo affrontato alcune delle problematiche principali, tra cui appunto la generazione di sottodomini per lo smistamento degli asset statici [1], così da parallelizzare il più possibile il...

Commenti

Ritratto di skandaMekoodkr

nootropil hdgyu

miss viagra fest spring river buy nootropil online shipping viagra to canada

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