You are here

Prestazioni del sito web : Drupal ed il modulo LABjs

Inviato da giovanninews on Ven, 06/04/2012 - 18:30

Prestazioni del sito web Drupal Ogni utente Drupal sa che il suo è un cms ad alte prestazioni; in Drupal, le prestazioni del sito web possono essere facilmente incrementate dal core, senza moduli aggiuntivi, attivando la compressione javascript e la compressione dei css.

In questo periodo mi sento un pò assillato dalle prestazioni del sito web. E' un dato di fatto che le prestazioni del sito web, in termine di velocità, è uno dei tanti fattori che incide sul posizionamento delle pagine web.

Avere tante pagine senza javascript e con css ridotti porterà ad avere un sito web con prestazioni notevoli; questo è l' ideale per un sito web che basa il suo business sulla vendita di qualche prodotto o sull' e-commerce.

Un blog che si regge sulla pubblicità deve per forza avere javascript;

ma solo i javascript pubblicitari non sono sufficienti. Per aumentare i rientri pubblicitari è necessario avere sempre più accessi; anche se si hanno contenuti di qualità, bisogna pubblicizzarli.

Entrano quindi in gioco i social networks con nuovi javascript.

Drupal, come altri cms, ha i suoi moduli aggiuntivi che si occupano anche di questo. Ho già avuto modo di parlare del modulo Service Links per Drupal, il migliore secondo me. Con la versione 2, ma già con la versione dev precedente, Service Links permetteva la socializzazione dei contenuti con la maggior parte dei networks prendendosi cura anche delle prestazioni del sito web.

In Service Links era stata abilita la funzione Sprite Css e l' autore del modulo è stato inoltre sempre sensibile nel fornire un codice html e css privo di errori. Con la funzione Sprite Css, l' impatto sulle prestazioni del sito era veramente molto basso e ciò mi ha portato ad utilizzare Service Links per molto tempo.

Il rientro dai social networks, sotto forma di accessi al sito, è stato però quasi nullo; ciò mi ha portato ad eliminare il modulo per riprendere qualcosa sulle prestazioni. Nel modulo Service Links mancavano però il "Mi piace" di Facebook ed il Google +1, al momento forse i più importanti.

Volevo provare ad offrire nel sito web ancora qualcosa per la socializzazione, ma solo relativamente a Google, Twitter e Facebook, ed il panorama dei moduli sociali per Drupal non era soddisfacente; i moduli Easy Social e ShareThis avevano un impatto notevole sulle pretazioni del sito.

Non mi ero accorto che Service Links, nell' ultima versione, ha in più il Widget per attivare i javascript di Google +1, Twitter ed il "Mi piace" di Facebook, oltre ai javascript per Digg e Linkedin.

Attivando solo tre pulsanti, perdo 0,4 secondi sulle prestazioni della pagina completa; un tempo abbastanza accettabile per provare questi social. In merito alla perdita totale, tra javascript AdSense, Analitycs e Social, perdo circa 1,4 secondi, un tempo sulle prestazioni che vale la pena cercare di migliorare.

Alcuni moduli sviluppati per Drupal dovrebbero permettere un incremento di prestazioni agendo sulla compressione e sul defer di css e javascript. Tra questi abbiamo al momento ADVAGG (Advanced CSS/JS Aggregation) che, utilizzato insieme a HeadJS (modulo dipendente da ADVAGG), permette di fare qualcosa.

L' autore del modulo  ADVAGG lo definisce il Sacro Graal per css e javascript, ma il rientro prestazionale, nel mio caso quantificato con un miglioramento di circa 0,1/0,2 secondi se utilizzato insieme al modulo HeadJS, non giustifica l' appesantimento di Drupal con due ulteriori moduli.

Il modulo ADVAGG, tra l' altro necessita la disattivazione della compressione CSS e Javascript nativa di Drupal a favore della propria compressione, che a detta dell' autore, funziona meglio della compressione Drupal. Inoltre ADVAGG, pur essendo compatibile con jQuery, rende inutilizzabile il modulo jQuery Update, constringendo ad utilizzarre la vecchia libreria jQuery.

Il modulo HeadJS da affiancare (non necessariamente) ad ADVAGG, necessita che siano scaricate le librerie ed installate in sites/all/libraries; niente di complicato ma sempre qualcosa in più.

Il modulo per Drupal che invece mi da realmente una mano in fatto di prestazioni è LABjs; è questo un modulo Drupal semplicissimo (?) e molto leggero. LABjs deve solo (?) essere installato ed abilitato; non ha permessi da abilitare, non è necessario configurarlo per un uso normale (?).

Appena prima di questa pubblicazione noto che qualcosa bisogna fare: è necessario ad esempio impostare l' esclusione di LABjs per la creazione o la modifica di pagine se si usa FCKeditor (o CKeditor). Probabilmente sarà necessario escludere pagine di amministrazione che utilizzano tools JavaScript.

LABjs è un loader JavaScript che carica ed esegue gli script velocemente, in parallelo, a supporto del browser, senza bloccare il rendering della pagina. LABjs è utilizzato da Twitter, Vimeo, Examiner e tanti altri.

L' utilizzo del modulo LABjs nel mio Drupal ha portato un recupero di prestazioni del sito web di circa 0,5 secondi a pagina, quindi più di quanto perso installando il modulo Service Links con l' abilitazione dei tre pulsanti social Google +1, Twitter e Facebook.

Gli utenti Drupal sanno dove scaricare il modulo LABjs, se interessati.