¿Cómo puedo recargar automáticamente una página web, si no ha habido actividad en la página durante un período de tiempo determinado?
javascript
ajax
Umar Adil
fuente
fuente
Respuestas:
Si desea actualizar la página si no hay actividad, debe descubrir cómo definirla. Digamos que actualizamos la página cada minuto a menos que alguien presione una tecla o mueva el mouse. Esto usa jQuery para el enlace de eventos:
fuente
Esto se puede lograr sin javascript, con esta metaetiqueta:
donde content = "5" son los segundos que la página esperará hasta que se actualice.
Pero usted dijo que si no hubiera actividad, ¿qué tipo de actividad sería?
fuente
setInterval
, ¡me alegra saber que existe!También he creado una solución javascript completa que no requiere jquery. Podría ser capaz de convertirlo en un complemento. Lo uso para la actualización automática fluida, pero parece que podría ayudarlo aquí.
JSFiddle AutoRefresh
fuente
Arriba actualizará la página cada 10 minutos a menos que se llame a resetTimeout (). Por ejemplo:
fuente
Basado en la respuesta aceptada de arturnt. Esta es una versión ligeramente optimizada, pero hace esencialmente lo mismo:
La única diferencia es que esta versión usa en
setInterval
lugar desetTimeout
, lo que hace que el código sea más compacto.fuente
1000
si está calculando usando60000
?Cada vez que mueva el mouse, verificará la última vez que movió el mouse. Si el intervalo de tiempo es mayor a 20 ', volverá a cargar la página, de lo contrario, renovará la última vez que movió el mouse.
fuente
Recarga automática con el objetivo de su elección. En este caso, el objetivo se
_self
establece en sí mismo, pero puede cambiar la página de recarga simplemente cambiando elwindow.open('self.location', '_self');
código a algo como este ejemplowindow.top.location="window.open('http://www.YourPageAdress.com', '_self'";
.Con un mensaje de ALERTA de confirmación:
Sin alerta de confirmación:
El código del cuerpo es el MISMO para ambas soluciones:
fuente
usa el
setInterval
método JavaScript :fuente
fuente
Consideraría
activity
si el usuario está enfocado o no en la ventana. Por ejemplo, cuando hace clic de una ventana a otra (por ejemplo, Google Chrome a iTunes, o Tab 1 a Tab 2 dentro de un navegador de Internet), la página web puede enviar una devolución de llamada diciendo "¡Estoy fuera de foco!" o "Estoy enfocado". Se podría usar jQuery para aprovechar esta posible falta de actividad para hacer lo que quisieran. Si estuviera en su posición, usaría el siguiente código para verificar el enfoque cada 5 segundos, etc. y volver a cargar si no hay enfoque.fuente
Y finalmente la solución más simple:
Con confirmación de alerta:
Sin confirmación de alerta:
El código del cuerpo es el MISMO para ambas soluciones
fuente
Con texto de confirmación en la página en lugar de alerta
Dado que este es otro método para cargar automáticamente si está inactivo, le doy una segunda respuesta. Este es más simple y más fácil de entender.
Con confirmación de recarga en la página
Cuadro de confirmación cuando se usa con confirmación en la página
Los códigos corporales para ambos son MISMOS
NOTA: Si no desea tener la confirmación en la página, use Sin confirmación
fuente
Usando LocalStorage para realizar un seguimiento de la última vez que realizó la actividad, podemos escribir la función de recarga de la siguiente manera
Luego creamos una función de flecha que guarda la última vez de interacción en milisegundos (String)
Tendremos que escuchar el
beforeunload
evento en el navegador para borrar nuestrolastinteraction
registro para no quedarnos atrapados en un ciclo de recarga infinito.Los eventos de actividad del usuario que necesitaremos monitorear serían
mousemove
ykeypress
. Almacenamos el último tiempo de interacción cuando el usuario mueve el mouse o presiona una tecla en el tecladoPara configurar nuestro oyente final, utilizaremos el
load
evento. En la carga de la página, utilizamos lasetInterval
función para verificar si la página ha expirado después de un cierto período.fuente
Esta tarea es muy fácil de usar siguiendo el código en la sección de encabezado html
Actualizará su página después de 30 segundos.
fuente