Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde.
Preciso rodar um $.ajax de minuto a minuto mesmo com a janela do navegador minimizada.
Já tenho o sistema minuto a minuto todo pronto, mas quando minimizo a janela, o script não roda. Então quer saber se tem como eu forçar a execução do script mesmo se a janela estiver minimizada.
Agradeço a a ajuda de todos.
Na verdade William, é de 15 em 15 minutos, só coloquei assim pra simplificar a pergunta..
Desenvolvi um site de notícias onde a Agência O Globo fornece o NTR (Notícias em Tempo Real) em arquivos .XML
Anteriormente eu fiz um esquema de leitura do XML e cadastro no Banco de Dados, mas isso manualmente, o cliente selecionava os arquivos manualmente.
Mas, eles querem isso tudo automaticamente, então fiz um sistema que de 15 em 15 minutos roda um $.ajax, e o arquivo PHP faz a verificação de novas notícias, novos arquivos e etc.
Isso tudo ta funcionando, mas o sistema para quando minimizo a janela.
Realmente, eu tenho interesse em aprender a mexer com sockets, mas meu prazo pra fazer esse sistema está muito curto, então optei por fazer algo que eu sei.
Se entendi direito o objetivo do script é atualizar a página a cada 15 minutos, porém quando minimizado o contador de tempo para e ele levaria mais 15 minutos para atualizar novamente, certo ?
Se for isso você poderia utilizar o evento "visibilitychange" para executar a atualização toda vez que a janela é restaurada ou a aba ganha foco.
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
function atualizar() {
alert('atualizado');
}
window.addEventListener('visibilitychange', atualizar, true);
</script>
</head>
<body>
</body>
</html>https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html
@Francis Schiavo.
Não é esse o caso, o erro acontece se a janela estiver minimizada quando a contagem chegar a 0 (zero).
Terminando a contagem o sistema atualiza, e depois volta a contar +15 minutos.
Que tal tirar o minuto a minuto e adotar uma estratégia de sockets ?
Ai o servidor só te responde qndo tiver algo para falar.