En caso de que no sabe lo que estoy hablando, lea John Resig - How JavaScript Timers Work y Is JavaScript guaranteed to be single-threaded?¿Qué desencadena la ejecución del código JavaScript?
Hay varios factores desencadenantes que poner en cola las tareas en ejecución los motores JS FIFO. Esto no forma parte de ningún estándar, así que estoy tratando de encontrar una lista exhaustiva de esos factores desencadenantes. (Supongo que todo se reduce a los controladores de eventos internos, como eventos de carga guión o eventos del temporizador, pero prefiero ignorar partes internas del motor y mirar las cosas desde el punto de vista del usuario.)
Asíahora he identificado
<script>
elementos en el documento inicial (incluyendo los agregados pordocument.write
) *<script>
elementos insertados por JS en tiempo de ejecución * handl- Evento ERS
- estos incluyen una amplia variedad de casos, tales como la interacción del usuario, eventos de error, los mensajes de los Trabajadores web o devoluciones de llamada de Ajax ... window.setTimeout
window.setInterval
*) sólo en Navegador/Entornos DOM
¿Algo más? ¿Alguna diferencia entre los motores JS?
Similar a window.setTimeout y window.setInterval, ahora hay window.requestAnimationFrame que intentará activar la función la próxima vez que su pantalla se actualice (generalmente 1/60 de un segundo) – jcmiller11
Puede agrupar 'setTimeout() 'y' setInterval() 'junto con los manejadores de eventos porque eso es lo que son: eventos temporizados. Básicamente, solo hay dos cosas: controladores de eventos y carga de scripts. – slebetman