Il plugin: https://gist.github.com/958683
Il codice di esempio: http://jsfiddle.net/5ZFGh/

Descrizione:
è un semplice plugin che permette di gestire il caricamento di «enne» immagini consentendo l'esecuzione di una callback sulla singola immagine (quando caricata) e alla fine del processo, stabilendo se tutte le immagini sono state caricate o se una o più immagini non sono state caricate.


i Deferrd Object sono una novità introdotta in jQuery a partire dalla versione 1.5
e se c'è una cosa che vale la pena di essere imparata assolutamente bene è proprio questa feature. (il plugin funziona comunque solo con jQuery 1.6+)

Per chi non li avesse mai visti/usati c'è abbastanza documentazione nel sito ufficiale di jQuery; introdotti in modo semplice, servono per poter attendere in modo sincrono l'esecuzione di eventi che sarebbero naturalmente asincroni attraverso il ritorno di una "promessa" di un risultato differito nel tempo (da cui "deferred").

All'interno della nostra funzione asincrona potremmo quindi "risolvere" (.resolve()) o "rigettare" (.reject()) l'oggetto deferred (equivalente al dare un segnale esplicito di terminazione con successo o fallimento) mentre a livello esterno possiamo controllare lo stato dell'esecuzione del deferred attraverso un helper (il metodo $.when())