Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dian Carlos

Forçar execução de script com setTimeout mesmo com a janela minimizada

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>

Testei apenas no Firefox, mas esta funcionalidade está em discussão na W3:

https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.