Ho un codice che voglio eseguire quando alcuni elementi HTML vengono aggiunti alla pagina.
Per fare questo, ho una funzione "runOnRender":
runOnRender: function (func, args, interval) {
var that = this;
var guid = hb.getGuid().substr(0,7);
var checkFunc = function () {
if (that.$el.height() > 0 && that.$el.width() > 0) {
clearInterval(that[guid]);
that[guid] = 0;
func.call(that, args);
}
};
this[guid] = setInterval(checkFunc, interval || 200);
}
Impostare l'intervallo su 200 è il più alto possibile prima che ci sia spesso un ritardo notevole nell'attivazione dell'evento. L'ultima cosa che voglio è che i miei utenti si chiedano perché un pulsante sia stato appena cliccato o visto cambiare il testo dell'etichetta, ecc.
Ecco il trucco. È del tutto possibile che questo "runOnRender" sia impostato ..... ma l'Utente non fa mai l'azione che fa l'elemento HTML in questione a colpire il DOM .... il che significa che questo codice manterrà infinitamente in esecuzione come finché la pagina è aperta.
Sono su una macchina potente, potente, di sviluppo .... quindi mi chiedo quale sia il costo di questo codice e se ci sia un modo migliore.