Foros del Web » Programando para Internet » Javascript »

Función infinita

Estas en el tema de Función infinita en el foro de Javascript en Foros del Web. Hola. Vengo a plantearos un problema al que le llevo dando vueltas varias semanas, y es que, yo tengo una función que se repite infinitas ...
  #1 (permalink)  
Antiguo 26/04/2014, 14:23
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Exclamación Función infinita

Hola.

Vengo a plantearos un problema al que le llevo dando vueltas varias semanas, y es que, yo tengo una función que se repite infinitas veces en mi web:

Código Javascript:
Ver original
  1. function ejemplo(){
  2.      ejemplo();
  3. }
  4. ejemplo();

El problema es que se repite varias veces y al pasar un rato el navegador deja de ejecutar la función (seguramente porque se de cuenta de que es infinito) y la para. ¿Cómo podría evitar eso?

Muchas gracias,
Enrique.
  #2 (permalink)  
Antiguo 26/04/2014, 17:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Función infinita

Hola:

Las llamadas recursivas deben tener alguna condición para evitar el colapso...

Tu problema parece ser el aburrimiento...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 27/04/2014, 11:02
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: Función infinita

La respuesta la tiene un programador que conocí hace años... desafortunadamente no puede usar su computadora, ya que está trabajando en un loop infinito. Ya que termine el loop y se pueda conecctar le preguntaré.
  #4 (permalink)  
Antiguo 27/04/2014, 11:54
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Función infinita

Esta técnica lleva usándose décadas para ejecutar tareas "infinitas" en javascript; por ejemplo, para lo que yo más uso, videojuegos.
Crear un bucle infinito sin apropiarse de la CPU el 100% del tiempo (lo que mataría al nevagado) es muy sencillo: Usa un intervalo. Por ejemplo:

Código Javascript:
Ver original
  1. function ejemplo(){
  2.     console.log("codigo magico");
  3.      setTimeout(function() { ejemplo(); }, 100);
  4. }
  5.  
  6. ejemplo();

Según la necesidad que tengas, puedes meterle mas tiempo al timeout, o dejarlo en menos. Aunque cuidado con dejarlo muy corto, pues podrías matar a CPU's menos potentes.

Y ésto es todo, una tontería trivial que al parecer no todo el mundo conoce.

Última edición por marlanga; 27/04/2014 a las 11:59

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:57.