Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Javascript (http://www.forosdelweb.com/f13/)
-   -   Desesperacion xD (http://www.forosdelweb.com/f13/desesperacion-xd-588316/)

Chupytoloco 20/05/2008 16:24

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>


Chupytoloco 21/05/2008 06:10

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.

Chupytoloco 23/05/2008 16:26

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.

JavierB 24/05/2008 02:47

Respuesta: Desesperacion xD
 
Cita:

Iniciado por Chupytoloco (Mensaje 2417381)
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, :adios:


La zona horaria es GMT -6. Ahora son las 00:13.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.