Foros del Web » Programando para Internet » Javascript »

Codigo ralentiza pagina

Estas en el tema de Codigo ralentiza pagina en el foro de Javascript en Foros del Web. Hola amigos, recurro a vosotros por lo siguiente. En primer lugar, decir que aunque la funcion esta pasada a php, el meollo de la cuestion ...
  #1 (permalink)  
Antiguo 21/06/2010, 00:49
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Codigo ralentiza pagina

Hola amigos, recurro a vosotros por lo siguiente. En primer lugar, decir que aunque la funcion esta pasada a php, el meollo de la cuestion esta en javascript, por eso lo pongo aqui.

Es una funcion (que me dieron el otro dia en este foro) que muestra un reloj contando a partir de una fecha dada.

Funciona bien, pero el problema es que en determinados momentos me ralentiza la pagina, me explico.

Con mozilla no hay problema, con ie8, tengo unos gif animados y una marquesina con texto, bueno, pues esto no me funciona.

Mas curioso todavia, si abres una ventana y dejas el navegador en segundo plano, por ejemplo, si abres las opciones de internet, cuanto esta en segundo plano funciona todo perfecto.

Si lo probais, seguramente os funciona, ya que yo lo he probado en una pagina sola y funciona bien, el problema es cuando es una pagina con muchas cosas, deja de funcionar bien y a medida que vas quitando cosas va fucionando mejor.

Bueno, queria saber si le encontrais una explicacion a esto y si conoceis alguna forma de mejorar este codigo para ver si funciona todo bien.

Os pongo el codigo:

function mostrar_sesion()
{

$dia = substr($_SESSION['inicio_sesion'],8,2);
$mes = substr($_SESSION['inicio_sesion'],5,2) - 1;
$ano = substr($_SESSION['inicio_sesion'],0,4);
$hora = substr($_SESSION['inicio_sesion'],11,2);
$minutos = substr($_SESSION['inicio_sesion'],14,2);
$segundos = substr($_SESSION['inicio_sesion'],17,2);
?>
<script type="text/javascript">
function crono(){
var dia = <?php echo $dia;?>, mes = <?php echo $mes;?>, anio = <?php echo $ano;?>, hora = <?php echo $hora;?>, minutos = <?php echo $minutos;?>, segundos = <?php echo $segundos;?> //aquí es donde has de establecer la fecha final. Recuerda que enero es el mes 0, así el 5 es junio.
var fechaFinal = new Date(anio,mes,dia,hora,minutos,segundos)

var hoy = new Date()
diferencia = hoy.getTime() - fechaFinal.getTime();

horas = diferencia/1000/60/60;
horasTotales = parseInt(horas)

minutosFaltan = horas - parseInt(horasTotales)
minutosFaltan2 = minutosFaltan*1000*60*60
minutosFaltan2 = minutosFaltan2/1000/60
minutosTotales = parseInt(minutosFaltan2)

segundosFaltan = minutosFaltan2 - parseInt(minutosFaltan2)
segundosFaltan2 = segundosFaltan*1000*60
segundosTotales = parseInt(segundosFaltan2/1000)

falta = "<div id='calContador'><div id='calCuerpo'>";

if(horasTotales < 10) {horasTotales = "0" + horasTotales;}
if(minutosTotales < 10) {minutosTotales = "0" + minutosTotales;}
if(segundosTotales < 10) {segundosTotales = "0" + segundosTotales;}

horasTxt = horasTotales + ":";
minutosTxt = minutosTotales + ":";
segundosTxt = segundosTotales;

if (Math.abs(diferencia) <= 900) {
contadorCompleto = falta + "</div></div>";
clearInterval(crono);
}
else
{
contadorCompleto = falta + horasTxt + minutosTxt + segundosTxt
setInterval("crono(),1000")
}
document.getElementById('contador_regresivo').inne rHTML = contadorCompleto;
}

window.onload=function(){crono();};
</script>
<?php
}


?>
  #2 (permalink)  
Antiguo 21/06/2010, 01:54
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Codigo ralentiza pagina

setInterval("crono(),1000")

Eso es lo que te esta causando el problema. Primero que nada, tienes una llamada al setInteval totalmente errónea, deberías tener algo como esto:
Código Javascript:
Ver original
  1. setInterval(functioin(){crono()}, 1000);

Cambia esa linea y lo más probable es que veas un mejor rendimiento y logres mayor estabilidad. Ahora, tu script puede optimizarse demasiado, por ejemplo para reducir el footprint que estás dejando con tantas variables globales.

Otra cosa, estás duplicando tu intervalo cada vez que corre la función. Esto te da problemas, además ese intervalo nunca se elimina por que no está asignado a ningún id. Cuando hace esto:

Código Javascript:
Ver original
  1. clearInterval(crono);

El interprete está buscando por un intervalo cuyo id sea crono, pero no lo hay por que nunca es creado en ese script.

Tu escript puede, y debería pulirse, porque tal como lo tienes es totalmente un desastre en cuanto a desempeño se refiere.
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 21/06/2010, 03:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Codigo ralentiza pagina

Hola. Gracias por tu respuesta. Me ha gustado mucho el analisis que has hecho del codigo, aunque no me he enterado de mucho, porque la verdad es que no tengo ni idea de javacript (de momento, aunque esto en ello).

He hecho la modificacion que me has comentado (ya que las demas, la verdad, no se como hacerlas) y funciona mejor, pero solo 5 o 6 segundos, despues se va bloqueando hasta que deja de funcionar IE8, lo tengo que cerrar, finalizar tarea, etc, etc.

A ver si me podeis dar algunas pistas de como puedo arreglar este script para que funcione correctamente.

Gracias. Un saludo.
  #4 (permalink)  
Antiguo 21/06/2010, 06:07
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Codigo ralentiza pagina

Cita:
Iniciado por AitorLopez Ver Mensaje
He hecho la modificacion que me has comentado (ya que las demas, la verdad, no se como hacerlas) y funciona mejor, pero solo 5 o 6 segundos, despues se va bloqueando hasta que deja de funcionar IE8, lo tengo que cerrar, finalizar tarea, etc, etc.

Me has puesto en duda. Pruebas así

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. #calContador {width:450px;}
  5. #calFondoEnunciado {background-color:#6B8E23;color:#FFFFFF;font-family:Arial;font-size:12px;border: 1px solid #C9C9C9;border-width: 1px 1px 0px 1px;text-align:center;}
  6. #calCuerpo td{background-color:#6B8E23;color:#FFFFFF;font-family:Arial;font-size:11px;font-weight:bold;text-align:center;}
  7. #calCuerpo td.cont{background-color:#FFFF00;color:#000000;width:50px;}
  8. </style>
  9.  
  10. <?php
  11. $fecha = time();
  12. ?>
  13.  
  14. <script type="text/javascript">
  15. function crono(){
  16. var dia = <?php echo date("d", $fecha);?>, mes = <?php echo date("n", $fecha)-1;?>, anio = <?php echo date("Y", $fecha);?>, hora = <?php echo date("H", $fecha);?>, minutos = <?php echo date("i", $fecha)+1;?>
  17. var fechaFinal = new Date(anio,mes,dia,hora,minutos)
  18.  
  19. var serv_ahora =  new Date();
  20. serv_ahora.getFullYear(<?php date("Y", $fecha);?>);
  21. serv_ahora.getMonth(<?php echo date("n", $fecha);?>); // Enero es el mes 0
  22. serv_ahora.getDate(<?php echo date("d", $fecha);?>);
  23. serv_ahora.getHours(<?php echo date("H", $fecha);?>);
  24. serv_ahora.getMinutes(<?php echo date("i", $fecha);?>);
  25. diferencia = fechaFinal.getTime() - serv_ahora.getTime()
  26.  
  27. dias =diferencia/1000/60/60/24
  28. diasTotales = parseInt(dias)
  29. horasTotales = diferencia/1000/60/60
  30. horasReales = parseInt(horasTotales) - (parseInt(diasTotales)*24)
  31. minutosFaltan = horasTotales - parseInt(horasTotales)
  32. minutosFaltan2 = minutosFaltan*1000*60*60
  33. minutosFaltan2 = minutosFaltan2/1000/60
  34. minutosFinales = parseInt(minutosFaltan2)
  35. segundosFaltan = minutosFaltan2 - parseInt(minutosFaltan2)
  36. segundosFaltan2 = segundosFaltan*1000*60
  37. segundosFaltan2 = parseInt(segundosFaltan2/1000)
  38.  
  39. falta = "<div id='calContador'><div id='calFondoEnunciado'>Tiempo que Falta hasta el " + dia + "/" + parseInt(mes+1) + "/" + anio + " " + hora + ":" + minutos + "</div><div id='calCuerpo'><table style='table-layout:fixed;' bgcolor=' #C9C9C9' border='0px' cellspacing='1px' cellspadding='0px' width='450px'><tr>";
  40.  
  41. if(diasTotales < 10) {diasTotales = "0" + diasTotales;}
  42. if(horasReales < 10) {horasReales = "0" + horasReales;}
  43. if(minutosFinales < 10) {minutosFinales = "0" + minutosFinales;}
  44. if(segundosFaltan2 < 10) {segundosFaltan2 = "0" + segundosFaltan2;}
  45.  
  46. diasTxt = "<td class='cont'>" + diasTotales + "</td><td>Días</td>";
  47. horasTxt = "<td class='cont'>" + horasReales + "</td><td>Horas</td>";
  48. minutosTxt = "<td class='cont'>" + minutosFinales + "</td><td>Minutos</td>";
  49. segundosTxt = "<td class='cont'>" + segundosFaltan2 + "</td><td>Segundos</td></tr></table></div></div>";
  50.  
  51. if (Math.abs(diferencia) <= 900) {
  52. contadorCompleto = falta + "<td class='cont'>Se ha cumplido el tiempo</td></tr></table></div></div>";
  53. clearInterval(int);
  54. }
  55. else
  56. {
  57. contadorCompleto = falta +  diasTxt + horasTxt + minutosTxt + segundosTxt
  58. int = setInterval("crono(), 1000");
  59. }
  60. document.getElementById('contador_regresivo').innerHTML = contadorCompleto;
  61. }
  62. window.onload=function(){crono();};
  63. </script>
  64. </head>
  65. <body>
  66. <div id="contador_regresivo" style="text-align:center"></div>
  67. </body>
  68. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 21/06/2010, 06:49
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Codigo ralentiza pagina

Gracias por el interes que te has tomado, pero siento decirte que sigue igual.

Se sigue ralentizando tanto la marquesina como los gif.
  #6 (permalink)  
Antiguo 21/06/2010, 13:07
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Codigo ralentiza pagina

Hola

A ver si ahora va un poco mejor

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. #calContador {width:450px;}
  5. #calFondoEnunciado {background-color:#6B8E23;color:#FFFFFF;font-family:Arial;font-size:12px;border: 1px solid #C9C9C9;border-width: 1px 1px 0px 1px;text-align:center;}
  6. #calCuerpo td{background-color:#6B8E23;color:#FFFFFF;font-family:Arial;font-size:11px;font-weight:bold;text-align:center;}
  7. #calCuerpo td.cont{background-color:#FFFF00;color:#000000;width:50px;}
  8. </style>
  9.  
  10. <?php
  11. $fecha = time();
  12. ?>
  13.  
  14. <script type="text/javascript">
  15. function crono(){
  16. var dia = <?php echo date('d', $fecha);?>, mes = <?php echo date('n', $fecha)-1;?>, anio = <?php echo date('Y', $fecha);?>, hora = <?php echo date('H', $fecha);?>, minutos = <?php echo date('i', $fecha)+1;?>
  17. var fechaFinal = new Date(anio,mes,dia,hora,minutos)
  18.  
  19. var serv_ahora =  new Date();
  20. serv_ahora.getFullYear(<?php date('Y', $fecha);?>);
  21. serv_ahora.getMonth(<?php echo date('n', $fecha);?>); // Enero es el mes 0
  22. serv_ahora.getDate(<?php echo date('d', $fecha);?>);
  23. serv_ahora.getHours(<?php echo date('H', $fecha);?>);
  24. serv_ahora.getMinutes(<?php echo date('i', $fecha);?>);
  25. diferencia = fechaFinal.getTime() - serv_ahora.getTime()
  26.  
  27. segundostotales = parseInt(diferencia /1000);
  28. minutostotales = parseInt(segundostotales/60);
  29. horastotales = parseInt(minutostotales/60);
  30. dias = parseInt(horastotales/24);
  31. horas = parseInt(horastotales &#37; 24);
  32. minutos = parseInt(minutostotales % 60);
  33. segundos = parseInt(segundostotales % 60);
  34.  
  35. falta = '<div id="calContador"><div id="calFondoEnunciado">Tiempo que Falta hasta el ' + dia + '/' + parseInt(mes+1) + '/' + anio + ' ' + hora + ':' + minutos + '</div><div id="calCuerpo"><table style="table-layout:fixed;" bgcolor="#C9C9C9" border="0px" cellspacing="1px" cellspadding="0px" width="450px"><tr>';
  36.  
  37. if(dias < 10) {dias = '0' + dias;}
  38. if(horas < 10) {horas = '0' + horas;}
  39. if(minutos < 10) {minutos = '0' + minutos;}
  40. if(segundos < 10) {segundos = '0' + segundos;}
  41.  
  42. diasTxt = '<td class="cont">' + dias + '</td><td>Días</td>';
  43. horasTxt = '<td class="cont">' + horas + '</td><td>Horas</td>';
  44. minutosTxt = '<td class="cont">' + minutos + '</td><td>Minutos</td>';
  45. segundosTxt = '<td class="cont">' + segundos + '</td><td>Segundos</td></tr></table></div></div>';
  46.  
  47. if (Math.abs(diferencia) <= 900) {
  48. contadorCompleto = falta + '<td class="cont">Se ha cumplido el tiempo</td></tr></table></div></div>';
  49. clearInterval(int);
  50. }
  51. else
  52. {
  53. contadorCompleto = falta +  diasTxt + horasTxt + minutosTxt + segundosTxt
  54. int = setInterval("crono(), 1000");
  55. }
  56. document.getElementById('contador_regresivo').innerHTML = contadorCompleto;
  57. }
  58. window.onload=function(){crono();};
  59. </script>
  60. </head>
  61. <body>
  62. <div id="contador_regresivo" style="text-align:center"></div>
  63. </body>
  64. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 21/06/2010, 17:30
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Codigo ralentiza pagina

No vas a poder solucionar eso hasta que saques ese setInterval de tu función.

Prueva reemplazando el setInterval por un setTimeout:
Código Javascript:
Ver original
  1. intervalo = setTimeout(function(){crono()}, 1000);

Tal como lo tienes, y esto ya te lo dije, estás repdouciendo un intervalo más cada vez que corres la función, por lo que para el segundo 5 ya tienes 4 intervalos extra corriendo y consumiendo recursos.

Adler, una recomendación, no uses int, te produce errores con algunos navegadores.
__________________
twitter: @imbuzu
  #8 (permalink)  
Antiguo 22/06/2010, 04:18
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Codigo ralentiza pagina

Cita:
Iniciado por buzu Ver Mensaje
Adler, una recomendación, no uses int, te produce errores con algunos navegadores.
Gracias, @buzu. En realidad ese código era solo una caso montado para esta ocasión y no me di cuenta. Listado de palabras reservadas
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 22/06/2010, 04:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Codigo ralentiza pagina

Bueno chicos, pues esto ya está. Al final, la conclusion que saco que es que clave estaba en intervalo = setTimeout(function(){crono()}, 1000);, porque he adaptado el codigo al primer codigo original del principio del hilo y al ultimo de adler, y funciona bien en los dos, haciendo la modificacion de quitar el setinterval.

Quería daros las gracias a los dos por la ayuda que me habeis prestado y por no haber desistido, ya que mas de uno lo hubiera dejado a las primeras de cambio.

Ha quedado claro que sois muy buenos con javascript, y yo, bueno, no tengo ni idea, pero, por experiencia en otros lenguajes, tambien se aprende mucho de estos hilos, aunque no haya hecho ninguna aportacion, nada mas que probar cosas.

Por ultimo, a Adler decirle que no quería poner en duda su codigo ni muchisimos menos, por eso decia que había hecho unas modificaciones, etc, etc., quiero decir que el codigo original que me diste en otro post, tenia que ver con meter una fecha y empezar un reloj, pero no la forma de mostrarlo, y sobre todo, el entorno donde mostrarlo. En cuaquier caso, disculpame, por favor.

Ahora pongo los dos codigos funcionando con las modificaciones, eso si, adaptados a mi ejemplo. Pero si alguien quiere el original de adler con la modificacion que realmente importa, creo que no hace falta que lo ponga ya que queda claro lo que hay que hacer para que funcione.

Gracias de nuevo a los dos. Un saludo.

Codigo primero:

function mostrar_sesion()
{

if (isset($_SESSION['inicio_sesion']))
{}
else
{$_SESSION['inicio_sesion'] = time();}

/*De la variable inicio_sesion, voy recortando y quedandome con el numero que me interesa para cada momento. En la variable mes, le resto 1 porque la funcion javascript decia que el mes habia que restarle uno*/
$dia = date("d",$_SESSION['inicio_sesion']);
$mes = date("n",$_SESSION['inicio_sesion']) - 1;
$ano = date("Y",$_SESSION['inicio_sesion']);
$hora = date("H",$_SESSION['inicio_sesion']);
$minutos = date("i",$_SESSION['inicio_sesion']);
$segundos = date("s",$_SESSION['inicio_sesion']);
?>
<script type="text/javascript">
function crono(){
var dia = <?php echo $dia;?>, mes = <?php echo $mes;?>, anio = <?php echo $ano;?>, hora = <?php echo $hora;?>, minutos = <?php echo $minutos;?>, segundos = <?php echo $segundos;?> //aquí es donde has de establecer la fecha final. Recuerda que enero es el mes 0, así el 5 es junio.
var fechaFinal = new Date(anio,mes,dia,hora,minutos,segundos)

var hoy = new Date()
diferencia = hoy.getTime() - fechaFinal.getTime();

horas = diferencia/1000/60/60;
horasTotales = parseInt(horas)

minutosFaltan = horas - parseInt(horasTotales)
minutosFaltan2 = minutosFaltan*1000*60*60
minutosFaltan2 = minutosFaltan2/1000/60
minutosTotales = parseInt(minutosFaltan2)

segundosFaltan = minutosFaltan2 - parseInt(minutosFaltan2)
segundosFaltan2 = segundosFaltan*1000*60
segundosTotales = parseInt(segundosFaltan2/1000)

falta = "<div id='calContador'><div id='calCuerpo'>";

if(horasTotales < 10) {horasTotales = "0" + horasTotales;}
if(minutosTotales < 10) {minutosTotales = "0" + minutosTotales;}
if(segundosTotales < 10) {segundosTotales = "0" + segundosTotales;}

horasTxt = horasTotales + ":";
minutosTxt = minutosTotales + ":";
segundosTxt = segundosTotales;

if (Math.abs(diferencia) <= 900) {
contadorCompleto = falta + "</div></div>";
clearInterval(crono);
}
else
{
contadorCompleto = falta + horasTxt + minutosTxt + segundosTxt
setTimeout(function(){crono()}, 1000);
}
document.getElementById('contador_regresivo').inne rHTML = contadorCompleto;
}

window.onload=function(){crono();};
</script>
<?php
}


?>

Codigo segundo:

function mostrar_sesion()
{

/*De la variable inicio_sesion, voy recortando y quedandome con el numero que me interesa para cada momento. En la variable mes, le resto 1 porque la funcion javascript decia que el mes habia que restarle uno*/
$fecha = time();

?>
<script type="text/javascript">
function crono(){
var dia = <?php echo date("d", $fecha);?>, mes = <?php echo date("n", $fecha)-1;?>, anio = <?php echo date("Y", $fecha);?>, hora = <?php echo date("H", $fecha);?>, minutos = <?php echo date("i", $fecha)+1;?>
var fechaFinal = new Date(anio,mes,dia,hora,minutos)

var serv_ahora = new Date();
serv_ahora.getFullYear(<?php date("Y", $fecha);?>);
serv_ahora.getMonth(<?php echo date("n", $fecha);?>); // Enero es el mes 0
serv_ahora.getDate(<?php echo date("d", $fecha);?>);
serv_ahora.getHours(<?php echo date("H", $fecha);?>);
serv_ahora.getMinutes(<?php echo date("i", $fecha);?>);
diferencia = fechaFinal.getTime() - serv_ahora.getTime()

segundostotales = parseInt(diferencia /1000);
minutostotales = parseInt(segundostotales/60);
horastotales = parseInt(minutostotales/60);
dias = parseInt(horastotales/24);
horas = parseInt(horastotales & 24);
minutos = parseInt(minutostotales % 60);
segundos = parseInt(segundostotales % 60);

falta = "<div id='calContador'><div id='calFondoEnunciado'>";

if(dias < 10) {dias = '0' + dias;}
if(horas < 10) {horas = '0' + horas;}
if(minutos < 10) {minutos = '0' + minutos;}
if(segundos < 10) {segundos = '0' + segundos;}

diasTxt = dias + ":";
horasTxt = horas + ":";
minutosTxt = minutos + ":";
segundosTxt = segundos;

if (Math.abs(diferencia) <= 900) {
contadorCompleto = falta + "</div></div>";
clearInterval(intervalo);
}
else
{
contadorCompleto = falta + diasTxt + horasTxt + minutosTxt + segundosTxt
intervalo = setTimeout(function(){crono()}, 1000);
}
document.getElementById('contador_regresivo').inne rHTML = contadorCompleto;
}
window.onload=function(){crono();};
</script>
<?php
}


?>
  #10 (permalink)  
Antiguo 22/06/2010, 04:41
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Codigo ralentiza pagina

Cita:
Iniciado por AitorLopez Ver Mensaje
Por ultimo, a Adler decirle que no quería poner en duda su codigo ni muchisimos menos, por eso decia que había hecho unas modificaciones, etc, etc., quiero decir que el codigo original que me diste en otro post, tenia que ver con meter una fecha y empezar un reloj, pero no la forma de mostrarlo, y sobre todo, el entorno donde mostrarlo. En cuaquier caso, disculpame, por favor.
Nada, tranquilo para eso están los código, para retorcerlos. En realidad es un script que monté hace ya algunos años, cuando empecé con javascript y así salió.
Solo una puntialización has de cambiar clearInterval(intervalo); por clearTimeout(intervalo);
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #11 (permalink)  
Antiguo 22/06/2010, 12:47
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Codigo ralentiza pagina

Aún necesitas cambiar una cosa, ese clearInterval, ahora debería ser un clearTimeoutÑ

Código Javascript:
Ver original
  1. if (Math.abs(diferencia) <= 900) {
  2. contadorCompleto = falta + "</div></div>";
  3. clearTimeout(intervalo);
  4. }

De otra forma tu función se va a seguir ejecutando aun cuando ya no haya necesidad de eso.

Saludos y siempre es un gusto poder ayudar.
__________________
twitter: @imbuzu

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 13:20.