Esto podría sonar como una pregunta realmente novato, pero eso es porque soy bastante nuevo en JS. No pude encontrar ninguna información sobre esto en ninguna parte, así que pensé en preguntarle a la comunidad.JavaScript Infinite Loop?
¿Cómo hago un ciclo infinito en JavaScript? Estoy tratando de hacer una presentación de diapositivas, que he estado trabajando, pero no puedo hacer que se repita. Ni siquiera puedo hacer que se repita dos veces.
El código que estoy usando en este momento es
window.onload = function start() {
slide();
}
function slide() {
var num = 0;
for (num=0;num<=10;num++) {
setTimeout("document.getElementById('container').style.marginLeft='-600px'",3000);
setTimeout("document.getElementById('container').style.marginLeft='-1200px'",6000);
setTimeout("document.getElementById('container').style.marginLeft='-1800px'",9000);
setTimeout("document.getElementById('container').style.marginLeft='0px'",12000);
}
}
Sin la cosa por allí, lo hace ir a través de una sola vez. Cuando lo puse, hace que Firefox se bloquee o simplemente se repite una vez. Estoy seguro de que esto es algo realmente simple de hacer, e incluso si tiene que ser un bucle de 1,000,000 de veces o algo en lugar de infinito, eso funcionaría bien para mí.
Además, no quiero usar jQuery o algo que alguien más haya creado. Estoy aprendiendo JavaScript, y esto es en parte para ayudarme a aprender, y en parte porque estoy tratando de hacer tantos sistemas basados en HTML5 como pueda.
EDIT: Creo que la razón por la que está congelado es porque ejecuta el código de una vez, y luego simplemente lo almacena en un caché o algo así. Lo que quiero que haga es pasar esto una vez, luego comenzar de nuevo en la parte superior, que es lo que siempre he pensado en los bucles. En scripts "por lotes" (símbolo del sistema), esto se puede hacer con un comando "GOTO
". No sé si hay un equivalente en JS o no, pero ese es realmente mi objetivo.
¿Qué tiene que ver el uso de jQuery con el uso de HTML5? – Ender
jQuery no impide que aprenda Javascript. Está ahí para ayudar a ocultar las diferencias (demasiadas) en las implementaciones de JavaScript de cada navegador. Créame, todavía tendrá las manos muy sucias con Javascript, incluso con la ayuda de jquery. –
Ah, y la mayoría de los navegadores no le permiten ejecutar un bucle infinito en javascript. Sería demasiado fácil hacer ataques DoS a las personas si lo hicieran. Después de un cierto tiempo/número de operaciones, mostrarán diálogos de advertencia para que el script se comporte mal y le permitirán al usuario abortar el script. –