Nicholas C. Zakas, sviluppatore JavaScript e autore di testi molto famosi, ammette
in un post del suo blog che dividere sezioni del codice tramite la funzione
setTimeout — sebbene egli stesso l’abbia
proposto per gestire la coda delle operazioni — è in fin dei conti un
hack.
Il problema fondamentale di questo metodo risiede nelle differenti unità di tempo dei browser e nell’influenza che queste hanno sulla gestione dell’energia: Internet Explorer 9 seleziona un’unità di tempo diversa se sta girando in un portatile non collegato alla corrente. Nonostante i browser Microsoft siano spesso accusati di inefficienza e arretratezza, stavolta è
Internet Explorer 10 a fare un passo in avanti, introducendo la funzione
setImmediate,
raccomandata dal W3C.
Il nuovo metodo — al momento disponibile tramite la sintassi proprietaria
msSetIntermediate — esegue la funzione inserita non appena la coda delle azioni si è svuotata, senza aspettare un
interrupt di sistema. Il risultato è simile a
process.nextTick in ambiente
Node.js, e consente oltretutto una migliore gestione dell’energia. Di conseguenza
Zakas si augura che anche gli altri browser si adeguino e implementino il nuovo metodo in modo da renderlo universalmente disponibile nel prossimo futuro.