jQuery: ritardare l'esecuzione del codice sull'evento load dell'oggetto window

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.

Torna su