Sono sorpreso di non riuscire a trovare una risposta chiara a questo. Così, in jQuery, si può fare questo:Come jQuery ha funzioni asincrone?
$(someElements).fadeOut(1000);
$(someElements).remove();
Il che, inizierà un'animazione fadeOut, ma prima che venga completata l'esecuzione nel secondo periodo 1, gli elementi vengono rimossi dal DOM. Ma come è possibile? Continuo a leggere il codice JavaScript è single threaded (vedi anche: Is JavaScript guaranteed to be single-threaded?). So che posso fare neanche:
$(someElements).fadeOut(1000).promise().done(function() {
$(someElements).remove();
});
o meglio ancora:
$(someElements).fadeOut(1000, function() {
$(this).remove();
});
Quello che non capisco è come funziona JavaScript in un "filo singolo" ma sono in grado di utilizzare questi jQuery funzioni che eseguono in modo asincrono e visibile la modifica del DOM in posti diversi allo stesso tempo. Come funziona? Questa domanda non è: "Come posso risolvere questo problema".
Risposta breve: animazione CSS o timer. –
Penso che jQuery usi le code per le animazioni, è da qualche parte nei documenti .. – gpasci