... o più specificamente, come sono in grado di creare animazioni tramite javascript, che è sincrono, senza ostacolare la successiva istruzione javascript.In che modo jQuery realizza le sue animazioni asincrone?
È solo una curiosità. Stanno usando una catena di setTimeout()
? Se è così, sono impostati in anticipo, ognuno con una durata leggermente superiore rispetto al precedente e correndo in parallelo? Oppure vengono creati attraverso una chiamata ricorsiva, quindi in esecuzione in serie?
Oppure è qualcosa di completamente diverso?
Ok. Non avevo considerato 'setInterval()'. Quindi, se creo un'animazione con una durata di 1000, la durata di 'setInterval()' in jQuery viene impostata su 1 e viene cancellata dopo 1000 chiamate. O qualcosa di simile? – user113716
@patrick yes è qualcosa del genere - l'intervallo è probabilmente un po 'più lungo di 1ms, e penso che IE abbia comunque un intervallo minimo di qualcosa come 15ms circa. (Non riesco a ricordare se ciò significa che arrotonda a 0ms o arrotonda fino a 15ms :-) – Pointy
Quindi suppongo che facciano alcuni calcoli, dividendo la durata di millisecondi minimi, probabilmente dividendo di nuovo per la 'distanza' dell'animazione, e spostando l'elemento di destinazione 1px per chiamata di funzione. Ti sembra vicino? – user113716