Como recarregar automaticamente uma página da Web, se não houver atividade na página por um determinado período de tempo?
javascript
ajax
Umar Adil
fonte
fonte
Respostas:
Se você deseja atualizar a página, se não houver atividade, precisará descobrir como definir atividade. Digamos que atualizamos a página a cada minuto, a menos que alguém pressione uma tecla ou mova o mouse. Isso usa jQuery para ligação de eventos:
fonte
Isso pode ser realizado sem javascript, com este metatag:
onde content = "5" são os segundos que a página aguardará até que seja atualizada.
Mas você disse apenas se não houvesse atividade, que tipo de atividade seria essa?
fonte
setInterval
, tão feliz em saber que isso existe!Eu construí uma solução completa de javascript também que não requer jquery. Pode ser capaz de transformá-lo em um plugin. Eu o uso para a atualização automática fluida, mas parece que poderia ajudá-lo aqui.
JSFiddle AutoRefresh
fonte
Acima, a página será atualizada a cada 10 minutos, a menos que resetTimeout () seja chamado. Por exemplo:
fonte
Com base na resposta aceita de arturnt. Esta é uma versão ligeiramente otimizada, mas faz essencialmente a mesma coisa:
A única diferença é que esta versão usa em
setInterval
vez desetTimeout
, o que torna o código mais compacto.fonte
1000
se estiver calculando usando60000
?Cada vez que você move o mouse, ele verifica a última vez que o move. Se o intervalo de tempo for maior que 20 ', ele recarregará a página, caso contrário, renovará a última vez que você moveu o mouse.
fonte
Recarga automática com o alvo de sua escolha. Nesse caso, o destino é
_self
definido como ele mesmo, mas você pode alterar a página de recarga simplesmente alterando owindow.open('self.location', '_self');
código para algo como este exemplowindow.top.location="window.open('http://www.YourPageAdress.com', '_self'";
.Com uma mensagem de confirmação ALERTA:
Sem alerta de confirmação:
O código do corpo é o mesmo para as duas soluções:
fonte
use o
setInterval
método JavaScript :fonte
fonte
Eu consideraria
activity
se o usuário está ou não focado na janela. Por exemplo, quando você clica de uma janela para outra (por exemplo, Google Chrome para iTunes ou Tab 1 a Tab 2 em um navegador da Internet), a página da Web pode enviar um retorno de chamada dizendo "Estou fora de foco!" ou "Estou focado!". Alguém poderia usar o jQuery para aproveitar essa possível falta de atividade para fazer o que quisesse. Se eu estivesse na sua posição, usaria o código a seguir para verificar o foco a cada 5 segundos, etc. e recarregar se não houver foco.fonte
E, finalmente, a solução mais simples:
Com confirmação de alerta:
Sem confirmação de alerta:
O código do corpo é o mesmo para as duas soluções
fonte
Com texto de confirmação na página em vez de alerta
Como esse é outro método para carregar automaticamente se inativo, dou uma segunda resposta. Este é mais simples e mais fácil de entender.
Com a confirmação de recarga na página
Caixa de confirmação ao usar com a confirmação na página
Os códigos de corpo para ambos são os mesmos
NOTA: Se você não deseja obter a confirmação na página, use Sem confirmação
fonte
Usando o LocalStorage para acompanhar a última hora da atividade, podemos escrever a função reload da seguinte maneira
Em seguida, criamos uma função de seta que salva a última vez de interação em milissegundos (String)
Precisamos ouvir o
beforeunload
evento no navegador para limpar nossolastinteraction
registro, para não ficarmos presos em um loop infinito de recarga.Os eventos de atividade do usuário que precisaremos monitorar seriam
mousemove
ekeypress
. Armazenamos o último tempo de interação em que o usuário move o mouse ou pressiona uma tecla no tecladoPara configurar nosso ouvinte final, usaremos o
load
evento. No carregamento da página, usamos asetInterval
função para verificar se a página expirou após um determinado período.fonte
Esta tarefa é muito fácil de usar, seguindo o código na seção de cabeçalho html
Ele atualizará sua página após 30 segundos.
fonte