Lazy loading, caricare le funzioni Javascript quando servono
Stamattina mi sono soffermato a leggere un articolo su Digital Web Magazine che tratta del "Lazy Loading" un sistema intelligente per ottimizzare le performance di caricamento di una pagina web. In sostanza, al posto di caricare tutte le funzioni javascript al caricamento della pagina web, le facciamo caricare al bisogno, tramite AJAX.
In informatica, il pattern "Lazy Load" corrisponde all’implementazione del design pattern chiamato Proxy. L’obiettivo è di evitare il caricamento di un oggetto finchè non sia assolutamente indispensabile e solo allora sarà necessario investire risorse per caricarlo. Nel caso del JavaScript, una applicazione web generamente ha bisogno di un set di funzioni che vengono chiamate progressivamente durante l’interazione con l’utente. Applicare il Lazy Load in questo caso significa creare delle funzioni "vuote", senza il loro codice che verrà caricato al momento della loro prima chiamata. Definiamo questa tecnica come Ghost Pattern.
Il Ghost Pattern prevede di fornire un oggetto con tutti i suoi metodi pubblici ma saranno vuoti, senza codice al loro interno con la sola chiamata alla nostra funzione di "lazy load" che si occuperà di caricare il vero oggetto andandolo a sostituire con la funzione fantasma.
Se verrà chiamata nuovamente la stessa funzione, verrà scatenato il vero oggetto, già caricato precedentemente.
Tutto questo solo per darvi un’idea della logica di questo design pattern. Per vedere nel dettaglio il codice potete trovarlo direttamente su questo articolo. Per chi usa JQuery come me, vi segnalo il plugin "Plugin" (strano nome, eh?) che implementa in toto il Lazy Loading, ma questo bisogna caricarlo fin da subito, eheheh…
Articoli che potrebbero interessarti...
Protoload: una libreria javascript per le icone di “loading”
Si chiama Protoload ed è una libreria javascript che mette a disposizione metodi per gestire il "loading" e dare la sensazione all’utente di un processo in corso. Ora queste icone vanno molto di…
ajax, javascript, loading, protoload
Picasa: le nuove funzioni dell’album fotografico
Picasa ha rilasciato la nuova release introducendo alcune importanti novità:
Non poteva mancare una ricerca per colore, visto che picasa è un prodotto di Google: si possono in questo modo ricavare tutte le…
picasa
Googlebot, scegliere quando farlo venire
Bigmouthmedia scrive che Google Sitemaps ha implementato una nuova feature che permette di scegliere quanto spesso far visitare il nostro sito dallo spider di Google, GoogleBot. Si può scegliere un valore da 1…
google-sitemaps, googlebot, spider
AJAX Library API: la globalizzazione nei framework javascript
La globalizzazione entra anche nello sviluppo web con l'aiuto di Google, tramite le AJAX Library API. Questa nuova libreria consente di caricare il proprio framework javascript preferito in semplicità apportando inoltre alcuni vantaggi insostituibili.
AJAX Library API, dojo, Google, jquery, jQuery UI, mootools, prototype, script.aculo.us
Quando lo spamming è divertente
Una divertente raccolta di immagini in giro per la rete. A presentarcela è il sito www.tgcom.it, il giornale online del TG5.
Quando l’onestà traspare
Qualunque sia l’obiettivo di un sito Web, dal vendere una ghirlanda di fiori secchi all’offrire un miglior servizio ai cittadini, se i visitatori lo trovano scarsamente credibile, non riuscirà a raggiungere lo scopo. Del…

selettiva degli ActiveX in Internet Explorer WCAG 2.0 per un web accessibile Bordi perfetti sulle immagini Come implementare la copia del testo usando Javascript + Flash (cross browser) The seven rules of pragmatic progressive enhancementLazy loading, caricare le funzioni Javascript quando servonoProcessing.js: Port of the Processing language to JavaScript and Canvas Processing.js: Javascript e Canvas alla massima potenza Compression using Canvas and PNG Con JavaFX Sun punta a fare concorrenza ad AIR e Silverlight
nel dettaglio il codice potete trovarlo direttamente su questo articolo. Per chi usa JQuery come me, vi segnalo il plugin “Plugin†(strano nome, eh?) che implementa in toto il Lazy Loading, ma questo bisogna caricarlo fin da subito, eheheh… (dynamick.it)