Diciamo ho questa funzione javascript:animazioni CSS stallo durante l'esecuzione di javascript funzione
function pauseComp(ms) {
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < ms);
}
e un'animazione CSS3 (per esempio, <i class="icon-spinner icon-spin"></i>
dal nuovo font-awesome 3). Quando eseguo la funzione javascript sopra, interrompe lo spinner mentre la funzione è in esecuzione. Vedere di cosa sto parlando here. Fondamentalmente, javascript interrompe le animazioni CSS, e mi chiedo perché, o se qualcun altro ha notato questo/trovato una soluzione alternativa. Ho provato a metterlo in un setTimeout (fn, 0), dove fn è il processo lungo, ma poi ho capito perché anche questo non funzionerà (js non è multithread). Qualcuno ha visto accadere questo?
Aggiornamento: È interessante notare che questo non è tanto un problema in Safari, anche se l'interazione con l'interfaccia del browser è ancora interessata.
È necessario suddividere il "codice di esecuzione prolungata" in blocchi per consentire a tutto il resto di continuare. –
Giusto, anche se sono consapevole che ciò lo risolverebbe, non è una soluzione praticabile per le funzioni che sto cercando di applicare a questo. Le funzioni non sono divisibili in blocchi più piccoli. Sto davvero controllando se qualcuno ha una soluzione per il problema esatto sopra, che, allo stesso modo, non può essere scomposto. –