Foros del Web » Programando para Internet » Javascript »

Desesperacion xD

Estas en el tema de Desesperacion xD en el foro de Javascript en Foros del Web. Necesito ayuda por favor, estoy desesperadito. La funcion lo unico k hace es incrementar un numero cada milisegundo, sumandole el valor k le pasas por ...
  #1 (permalink)  
Antiguo 20/05/2008, 16:24
Avatar de Chupytoloco  
Fecha de Ingreso: julio-2007
Mensajes: 88
Antigüedad: 16 años, 9 meses
Puntos: 1
Desesperacion xD

Necesito ayuda por favor, estoy desesperadito.

La funcion lo unico k hace es incrementar un numero cada milisegundo, sumandole el valor k le pasas por la funcion.

Lo que veis funciona pero me da errores a veces en el getElementById(id) y no me muestra el numero.

AYUDAAAAAAAAAARME PORFA!!!

Código:
CODIGO JAVASCRIPT
---------------------------
<script language="Javascript" type="text/javascript" src="../js/timer.js"></script>
<script language="JavaScript" type="text/javascript" src="../js/ajax.js"></script>
<script>
 recursos = new Array();
 recursos['crystal'] = 1000; // valores iniciales a los que sumaremos la funcion
 recursos['metal'] = 1000;
 recursos['combustible'] = 1000;
 recursos['energia'] = 1000;
 count = new Array();
 count['crystal'] = 0; // contadores de decimales
 count['metal'] = 0;
 count['combustible'] = 0;
 count['energia'] = 0;
function time(id, valor)
{
	 part=valor.toString().split('.'); // separamos entero de decimal
 	 seg = parseInt(part[0]); // pasamos a int la parte entera
 	 decimal = valor - seg; // obtenemos el decimal
	 count[id] = count[id] + decimal; // sumamos el decimal al contador
	 if(count[id] < 1)
	 {
	 	segaux = 0; // si el decimal sigue siendo menor a 1, sumamos 0 al numero a sumar
	 }
	 else {
	 		segaux = 1; // sino sumamos 1 y restamos a contador 1
			count[id] = count[id] - 1; 
	 	  }
     recursos[id] = recursos[id] + segaux + seg;  // valor a sumar al numero
	 document.getElementById(id).innerHTML = recursos[id];  // le decimos donde lo mostramos	       
}
		setInterval("time('crystal', '2')", 94); // llamadas a la funcion cada x milisegundos
		setInterval("time('metal', '3')", 94);
		setInterval("time('combustible', '4')", 94);
		setInterval("time('energia', '5')", 94);

</script>
CODIGO HTML
-------------------

<span id="crystal"></span>
<span id="metal"></span>       
<span id="combustible"></span>        
<span id="energia"></span>

Última edición por Chupytoloco; 20/05/2008 a las 16:38
  #2 (permalink)  
Antiguo 21/05/2008, 06:10
Avatar de Chupytoloco  
Fecha de Ingreso: julio-2007
Mensajes: 88
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Desesperacion xD

La verdad no entiendo el porque, pero poniendole en la pagina un

sleep(3)

el 99.9% de las veces que refresco me muestra bien la funcion sin errores, alguien tiene idea de k coño pasa?

A ver, el set interval llama a la funcion cada 94 microsegundos creo, en paginas k no tardan en cargarse por su bajo contenido en codigo el error de que no aparezcan los numeros no suceden, pero en paginas k tienen un contenido mas extenso es cuando pasa el error.

Tener que esperar 3 segundos para cargar cada pagina por culpa del sleep es un askito, a ver si alguien tiene una solucion para esto pls.

Última edición por Chupytoloco; 21/05/2008 a las 06:17
  #3 (permalink)  
Antiguo 23/05/2008, 16:26
Avatar de Chupytoloco  
Fecha de Ingreso: julio-2007
Mensajes: 88
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Desesperacion xD

Bueno despues de 6 dias pegandome con esto, encontre la solucion.

No se el pk pero poniendo el script al final de la pagina no da el error.
  #4 (permalink)  
Antiguo 24/05/2008, 02:47
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Desesperacion xD

Cita:
Iniciado por Chupytoloco Ver Mensaje
No se el pk pero poniendo el script al final de la pagina no da el error.
Es posible que estuvieras tratando de usar un elemento antes de que se hubiera creado.

Saludos,
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 12:39.