Ver Mensaje Individual
  #13 (permalink)  
Antiguo 04/11/2011, 13:55
PercevalCiro
 
Fecha de Ingreso: junio-2009
Mensajes: 64
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Aca te paso el codigo de ejemplo anterior
agregue un codigo
este en particular controla si estas o no activo, si estas inactivo mas de 5 segundos entonces no ejecuta el Ajax. caso contrario lo hacer.

El tema seria asi:
idleTime controla, se agregan dos eventos, si se produce algunos lo ponen en cero.
cada un segundo se suma una unidad.

Código:
var idleInterval = setInterval("timerIncrement()", 1000);
Acordate que 1000 es un segundo.

Código:
if(idleTime <= 5){
Aqui lo que se controla que no se haya incrementado 5 veces la variable idelTime, que si lo haces por 1000 milisegundos (es decir 1 segundo) te daria que a los cinco segundo pone no disponible.


Código:
 if(idleTime > 5){
   document.getElementById(capa).innerHTML = "No disponible";
   }
Aqui esta si es mayor a 5, cosa que es obvia, pero lo coloco para que veas donde podrias poner otras excepciones.
Espero que asi si te sirva, ahora actualizaras si esta disponible el usuario, en caso contrario, si pasan cinco segundos, no hara nada mas que poner No disponible.

Código PHP:
<!DOCTYPE html>
<
html>
    <
head>
        <
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <
title>Act</title>
<
script type="text/javascript">
    
//Se toma el tiempo cada cuanto se realiza una actualizacion
    //cada 300 MILISEGUNDO se ejecuta el metodo Enviar()
    //y se pasa como argumento, la pagina prueba.php
    // y resultado, que sera el nombre de nuestro div en la pagina.
var timer setInterval("Enviar('prueba.php','resultado')"1000);
var 
idleTime 0;
//Aqui el script para detectar si el usuario esta o no activo.
var idleInterval setInterval("timerIncrement()"1000);
//cuerpo.onclick =activar;
var cuerpo document;
cuerpo.addEventListener("mousemove"activarfalse);
cuerpo.addEventListener("keypress"activarfalse);

function 
activar(e)
    {
    
idleTime 0;
    }

function 
timerIncrement()
    {
    
idleTime++;
       }


//llamara a la funcion ajax, que lo que hara sera una peticion a la
//_pagina pasada como argumento, y la capa es donde se colocara el resultado.

function Enviar(_pagina,capa) {
if(
idleTime <= 5){
var 
ajax;
ajax ajaxFunction();

ajax.open("POST"_paginatrue);

ajax.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
ajax.onreadystatechange = function()
{

if (
ajax.readyState == 4)
{
document.getElementById(capa).innerHTML ajax.responseText;

}   }
ajax.send(null);
}else{
   if(
idleTime 5){
   
document.getElementById(capa).innerHTML "No disponible";
   }
}
}
//Se instancia el objeto y se devuelve
//dependiendo del navegador.
function ajaxFunction() {
var 
xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
return 
xmlHttp;
} catch (
e) {
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
return 
xmlHttp;
} catch (
e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return 
xmlHttp;
} catch (
e) {
alert("Tu navegador no soporta AJAX!");
return 
false;
}}}


}
</script>
        </head>
        <body>
            <!--Aqui se colocaran los datos obtenidos.-->
<div id="resultado">Nuestro Div Resultado.</div>
</body>
</html>