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
}
?>