Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/01/2015, 03:49
koa
 
Fecha de Ingreso: diciembre-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Cuenta atras JS,bloqueo navegador

Hola,

Os quiero pedir ayuda porque me estoy volviendo loco haciendo una pagina de subastas,os explico el problema.

necesito hacer una cuanta atras desde una fecha y q se vaya mostrando en diferentes divs,cada div corresponderia a un producto.

Estoy usando php,js y ajax.

El problema es que con ajax no se como hacer para mostrar el resultado en diferentes divs y estoy usando Js,os pongo el codigo.

function calcula(id,fecha)
{

var fecha=fecha;
hoy = new Date()
hasta = new Date(fecha)
DD = (hasta - hoy) / 86400000
hh = (DD - Math.floor(DD)) * 24
mm = (hh - Math.floor(hh)) * 60
ss = (mm - Math.floor(mm)) * 60
document.getElementById('aa'+id).innerHTML = Math.floor(DD) + ' Días, ' + Math.floor(hh) + ' Horas, ' + Math.floor(mm) + ' Minutos y ' + Math.floor(ss) + ' Segundos. '
if (hasta < hoy)
{
document.getElementById('aa'+id).innerHTML = 'Oferta Finalizada'

finalizar(id);
ver(nombre);
}
setInterval(calcula, 1000, id, fecha);
}



El problema es que empieza la cuenta atras y se me queda bloqueado el navegador al de unos segundos.Los parametros se los pasos asi


$conexion=mysql_connect("localhost","root","") or die("error de conexion");
mysql_select_db("ibaiondobay",$conexion);

$sql2="SELECT * FROM producto";
$resultado2=mysql_query($sql2,$conexion);
while($linea2=mysql_fetch_array($resultado2)){
$nom=$linea2['nombre'];
$id=$linea2['id'];
$fecha=$linea2['tiempo'];

echo "
<script>
calcula(".$id.",".$fecha.");
</script>";


}


La duda es,como hacer el setinterval sin que se me quede bloqueado el navegador o como hacer con ajax para q me lo vaya mostrando en diferentes divs.

Ajax siempre uso este codigo,igual sabeis como modificarlo para lo que quiero.

function maspuja(cantidad){
if(window.XMLHttpRequest){
peticion=new XMLHttpRequest();
}
else if(window.ActiveXObject){ // esto indica que el navegador es internet explorer
peticion=new ActiveXObject('Microsoft.XMLHTTP');
}
peticion.onreadystatechange=muestraContenido;

peticion.open('GET','maspuja.php?cantidad=' + cantidad ,true);
peticion.send();

function muestraContenido(){


if(peticion.readyState==4){
if(peticion.status==200){
document.getElementById('puja').innerHTML=peticion .responseText; //mostrar en contenedor

}
}
}
}



Necesito ayuda que es un curro q tengo que entregar hoy mismo S.O.S,lo mas facil seria saber como meter en set interval correctamente.


Muchas gracias a todos y un saludo