Ir para conteúdo
Fórum Script Brasil
  • 0

Requisição repetida, setInterval


Rodolfo Barreto

Pergunta

Fala amigos desenvolvedores, sou novato aqui no forum mas espero que possam me ajudar nesse bug.

Trabalho com desenvolvimento web a uns anos e estou desenvolvendo um site de leilão.Como todos sabem um sistema de leilão tem um cronometro, esse cronometro é cadastrado pela área administrativa determinando o tempo máximo. Quando o sistema inicia o cronometro diminui até zero, se chegar a zero o produto é arrematado.

Até ai tudo muito bonito, o meu sistema funcionou porém quando outros usuários acessam o mesmo leilão o cronometro desconta a cada usuário "online" no site.

Ex: Um usuário = cronometro normal, dois usuários: diminui de dois em dois, três usuários: diminui de três em três

Fiz as requisições ao banco usando jquery e exibo para o usuário através do JSON, algo mais ou menos assim:

window.setInterval(atualizar_leilao,1000);

function atualizar_leilao(){
   $.post('atualizar_leilao.php',function(json){
      $('#cronometro').text(json.cronometro);
   });
}

Queria a ajuda de vocês para tentar fazer com que não exista esse bug de toda vez que um usuário acessar o site o cronometro correr duplicado ou triplicado dependendo da quantidade de usuários..

Acredito que esteja ocorrendo um chamado na função toda vez que o site é carregado, mas mesmo assim não faz muito nexo.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Movendo: Outras Linguagens de Programação --> Ajax, JavaScript, XML, DOM.

Poderia postar o código completo? É possível que você esteja chamando a função setInterval dentro de algum loop que percorre todos os usuários ou algo do tipo, de forma que a função é chamada uma vez para cada usuário.

Link para o comentário
Compartilhar em outros sites

  • 0
Fala amigos desenvolvedores, sou novato aqui no forum mas espero que possam me ajudar nesse bug.

Trabalho com desenvolvimento web a uns anos e estou desenvolvendo um site de leilão.Como todos sabem um sistema de leilão tem um cronometro, esse cronometro é cadastrado pela área administrativa determinando o tempo máximo. Quando o sistema inicia o cronometro diminui até zero, se chegar a zero o produto é arrematado.

Até ai tudo muito bonito, o meu sistema funcionou porém quando outros usuários acessam o mesmo leilão o cronometro desconta a cada usuário "online" no site.

Ex: Um usuário = cronometro normal, dois usuários: diminui de dois em dois, três usuários: diminui de três em três

Fiz as requisições ao banco usando jquery e exibo para o usuário através do JSON, algo mais ou menos assim:

window.setInterval(atualizar_leilao,1000);

function atualizar_leilao(){
   $.post('atualizar_leilao.php',function(json){
      $('#cronometro').text(json.cronometro);
   });
}
Queria a ajuda de vocês para tentar fazer com que não exista esse bug de toda vez que um usuário acessar o site o cronometro correr duplicado ou triplicado dependendo da quantidade de usuários.. Acredito que esteja ocorrendo um chamado na função toda vez que o site é carregado, mas mesmo assim não faz muito nexo.
A cada requisição você deve enviar um dado diferente pois se não o navegador vai buscar o que tem em cache, tornado a pagina a mesma de antes. faça um tipo de um relogio contando um numero unico tipo no php
$n=strtotime(date('Y-m-d H:i:s');

e vai incrementando ele no js, para cada requisição envia-lo.

até mais.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...