Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/06/2010, 06:07
Avatar de Adler
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;" />