Un problema in cui ci si imbatte spesso quando si utilizza l'evento load
sull'oggetto window
è che spesso il codice
che andiamo ad eseguire viene eseguito con troppo anticipo. Fortunatamente esiste una soluzione.
Possiamo creare un piccolo ritardo nell'esecuzione del codice in questo modo:
(function f() {
f.now = +new Date;
$(window).load(function() {
if (+new Date - f.now < 500) {
setTimeout(f, 500);
}
// codice
});
})();
now
contiene un timestamp Unix generato dall'oggetto Date
. Questo timestamp è in millesimi di secondo, quindi
possiamo utilizzarlo per i nostri scopi.