Quase..

Agora entendi a uitilização do hidden, mas realmente não faz sentido ser num
hidden, se não é algo que você vai enviar junto com a requisição, não tem
pra que por no formulário, poderia ser array javascript com o id de cada
produto na tela e o seu tempo de término.

Quanto a requisição de sincronização, não me parece fazer sentido querer
sincronizar a hora do usuário com a do servidor, só iria reconsultar o tempo
restante do produto (da mesma forma que você faz na primeira requisição) e
voltar a aplicar o cronometro em cima desse tempo.

Até por que, dessa forma você não se preocupa com fuso horário, abrindo a
possibildade pra jogadores de outros países inclusive, além disso, uma
consulta ao banco a cada 10 minutos não significa nada, e a quantidade de
transferência de dados entre o server e o client, por ajax, continuaria
sendo a mesma.

2010/10/21 Edinho Almeida <[email protected]>

> Oi Eric,
> O fluxo que imaginei mas não sei se é o melhor:
> A página é carregada ( busca no banco de dados os detalhes do produto e seu
> horário de fim da promoção ), mostra o produto para o cliente, e deixa o
> horário num campo hidden (ou uma variável em javascript mesmo) com o horário
> do fim. O javascript 'onload' pega a hora atual do cliente e começa a
> contagem regressiva mostrando o relógio.
> [até aqui o cliente não clicou em nada = uma requisição com consulta ao
> banco]
> De tempos em tempos, por exemplo, 10 minutos, há uma requisição ajax
> somente para sincar a hora atual do cliente com a hora do servidor.
> [até aqui o cliente ainda não clicou em nada houve + uma requisição somente
> para retornar a hora do servidor sem consulta ao banco;
> A javascript confere a hora que está considerando como atual com a do
> servidor ]
> Quando cliente clicar em "quero este item" aí vai um request e no servidor
> há a validação do produto, hora do fim, etc...consultados no banco de dados.
>
> Abs
> Edinho Almeida
> 11 8018-8019
>
>
> 2010/10/21 Eric Saboia <[email protected]>
>
>> Edinho,
>> 1 - Como assim sem consulta ao banco? você vai gravar os produtos e tempo
>> de término como?
>> 2 - Concordo nesse aspecto, mas em 10 minutos, dúvido que um contador
>> javascript fique mais do que 3 segundos desincronizado, por isso falei a
>> pouco que no máximo deveria existir esse tipo de sincronização em intervalos
>> de aproximadamente 10 minutos, e não segundo a segundo.
>> 3 - Se travar, acredito que a contagem pare sim, mas acho que isso são
>> exceções, não vale a pena sacrificar o desempenho de um serviço por
>> exceções, é melhor perder esses clientes.
>> 4 - Continuo sem entender o porque do campo hidden.
>>
>>
>> 2010/10/21 Edinho Almeida <[email protected]>
>>
>>> Oi Eric,
>>> 1 - Acho (sem testar) que pode ser bem mais rápida um requisição sem
>>> consulta ao banco. Inclusive pode ser melhor ainda fazer um php puro para
>>> retornar somente a hora.
>>> 2 - Me refiro a segurança de que o relógio informado ao cliente esteja
>>> batendo com a hora do servidor. O cliente pode ver lá que "Faltam 30
>>> segundos" então dá um submit e em 3 segundos a página retorna e diz "tempo
>>> encerrado". Gera frustação ao cliente.
>>> 3 - Meu laptop celeron trava. Mas realmente se isso faz uma regressiva no
>>> javascript congelar eu não testei. Em vez de regressiva fazer a cada segundo
>>> uma nova leitura do horário do javascript deve resolver. Mas insisto ainda
>>> em saber se o horário do cliente está batendo com o do servidor.
>>> 4 - Concordo com você. A validação do lado do servidor sempre é
>>> obrigatória. Não faço nada sem validar no servidor.
>>> O campo hidden seria para evitar a consulta ao banco durante a
>>> requisição. No submit é feita uma consulta ao banco para conferir o horário
>>> de fim.
>>>
>>> Abs
>>> Edinho Almeida
>>> 11 8018-8019
>>>
>>>
>>> 2010/10/21 Eric Saboia <[email protected]>
>>>
>>> Nossa, vamos lá:
>>>>
>>>> 1 - Requisição ao banco ou ao servidor, só depende da ótica, o client
>>>> requisita o servidor, se esse precisa ir ao banco buscar a informação, 
>>>> tanto
>>>> faz..
>>>> 2 - Requisição ajax vai aumentar a segurança?
>>>> 3 - Máquina travar por 1 minuto? oO
>>>> 4 - Correto, o banco só precisa ter a hora de término, agora HIDDEN com
>>>> essa hora? você NUNCA pode confiar na informação que vem do cliente, isso é
>>>> regra número 1 de segurança. e é por esse motivo que o cronômetro ser por
>>>> ajax ou javascript independe na segurança, pois você não deve confiar nessa
>>>> informação pra aceitar ou não o lance. Como eu já disse anteriormente, a
>>>> verificação do tempo tem que ser feita NO servidor, por mais que o
>>>> cronometro ainda mostre tempo maior que zero, se a verificação no servidor
>>>> mostrar que o tempo encerrou, a requisição não pode ser aceita.
>>>>
>>>> 2010/10/21 Edinho Almeida <[email protected]>
>>>>
>>>> Amigos.
>>>>> Pelo que entendi não é requisição ao banco e sim ao servidor para
>>>>> buscar a hora do servidor, ou não?
>>>>> Realmente será um request ajax por segundo, porém a segurança de que o
>>>>> horário está sendo obedecido é maior.
>>>>> Se a máquina do cliente travar por um minuto quando houver a nova
>>>>> requisição a data voltará correta.
>>>>>
>>>>> No banco fica somente a hora do fim. que é lida só quando a página
>>>>> carrega.
>>>>> O Ajax busca o horário do servidor e o javascript faz a conta com o
>>>>> horário do fim que está num campo hidden.
>>>>> Daria para equilibrar segurança com redução de requests fazendo o
>>>>> javascript fazer a regressiva, mas de 15 em 15 segundos, por exemplo fazer
>>>>> uma requisição para aferir o horário.
>>>>>
>>>>> Abs
>>>>> Edinho Almeida
>>>>> 11 8018-8019
>>>>>
>>>>>
>>>>> 2010/10/21 Leonardo Grillo <[email protected]>
>>>>>
>>>>>> 1 requisição ao banco por segundo só para isso? acho meio que
>>>>>> desnecessário...
>>>>>> Se você paga um servidor de hospedagem por trafego, imagine se 1.000
>>>>>> pessoas acessam o seu site por dia, ficam vendo este cronometro por 
>>>>>> 10min e
>>>>>> que esta tarefa gere um fráfego de 1kb por requisição. é só multiplicar:
>>>>>> 585.9375mb por dia!
>>>>>>
>>>>>> Em 21 de outubro de 2010 11:00, Eric Saboia <[email protected]>escreveu:
>>>>>>
>>>>>>  Acho essa abordagem horrível. De qualquer forma você não irá garantir
>>>>>>> a precisão do cronômetro pelo delay que a requisição via ajax leva, 
>>>>>>> além de
>>>>>>> gerar uma porrada de requisições que podem afetar o desempenho do 
>>>>>>> serviço.
>>>>>>>
>>>>>>> 2010/10/21 Tiago Davi <[email protected]>
>>>>>>>
>>>>>>> Nossa.. rs de 1s em 1s o servidor fica fazendo requisições e com
>>>>>>>> acessos concorrentes?
>>>>>>>>
>>>>>>>> Acho que estou tentando ir pelo caminho mais difícil e não estou
>>>>>>>> exergando o mais simples.
>>>>>>>>
>>>>>>>> Gostei da solução mas isso não prejudica a performance em um
>>>>>>>> servidor compartilhado?
>>>>>>>>
>>>>>>>> Parabéns pelos sites, muito bom mesmo.
>>>>>>>>
>>>>>>>> Em 21 de outubro de 2010 11:50, Allan Torres ( Hazi) <
>>>>>>>> [email protected]> escreveu:
>>>>>>>>
>>>>>>>> Gente,
>>>>>>>>> Construi alguns desses , www.japegou.com.br ,
>>>>>>>>> www.liquidatagua.com.br e to vendendo a solução também para alguns
>>>>>>>>> estados, graças a deus ta começando bem legal, mas esse contador 
>>>>>>>>> funciona
>>>>>>>>> com um ajax bem simples, pois você cadastra o horario de inicio, e 
>>>>>>>>> horario
>>>>>>>>> final, juntamente com a data, dai é fazer uma requisição ajax que de 
>>>>>>>>> 1 em 1
>>>>>>>>> segundo busque a informação e traga ao site, o complicado as vezes é a
>>>>>>>>> questão de fuso horario dos servidores mas facilmente resolvido com 
>>>>>>>>> uma soma
>>>>>>>>> de mais ou menos horas...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Abraços, precisando de alguma coisa relacionada a esse tipo de
>>>>>>>>> sistemas, to por aqui,
>>>>>>>>> Mandem PVT.
>>>>>>>>>
>>>>>>>>> allan Torres
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2010/10/21 Roberto Almeida Quilice Longhi <
>>>>>>>>> [email protected]>
>>>>>>>>>
>>>>>>>>>  Tiago,
>>>>>>>>>>
>>>>>>>>>> Concordo que parte tem que ser feita em javascript e parte no
>>>>>>>>>> servidor.
>>>>>>>>>> Eu faria dessa forma para não ficar fazendo requisição no servidor
>>>>>>>>>> se é algo que o cliente pode resolver.
>>>>>>>>>>
>>>>>>>>>> Porém não entendi o paragrafo abaixo:
>>>>>>>>>>
>>>>>>>>>> "Pois em windows você pode programar a execução de um método
>>>>>>>>>> automaticamente mas agora em linux.. ai é que são elas."
>>>>>>>>>> O que tu quis dizer com isso ?
>>>>>>>>>>
>>>>>>>>>> Em 21/10/2010 11:22, Tiago Davi escreveu:
>>>>>>>>>>
>>>>>>>>>> Interessante, fiquei analisando esses sites de compras coletivas e
>>>>>>>>>> tenho quase certeza que eles funcionam com Asp.net..
>>>>>>>>>> Pois em windows você pode programar a execução de um método
>>>>>>>>>> automaticamente mas agora em linux.. ai é que são elas.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Em 21 de outubro de 2010 11:18, Lucas <[email protected]>escreveu:
>>>>>>>>>>
>>>>>>>>>>> Na parte da visualização (Front End) é JavaScript... Agora, você
>>>>>>>>>>> pode fazer um esquema de ajax, para sincronizar o relógio de tempo 
>>>>>>>>>>> em tempo,
>>>>>>>>>>> tendo consulta no banco ou não.. e quando "zerar" o cronometro, 
>>>>>>>>>>> você também
>>>>>>>>>>> faz uma requisição ajax para certificar que o tempo foi "acabado"...
>>>>>>>>>>> Eu faria assim.
>>>>>>>>>>>
>>>>>>>>>>> Em 21 de outubro de 2010 11:15, Tiago Davi <tiago.asp.net@
>>>>>>>>>>> gmail.com> escreveu:
>>>>>>>>>>>
>>>>>>>>>>>>  Bom dia galera.
>>>>>>>>>>>>
>>>>>>>>>>>>  Gostaria de saber se é possível em PHP fazer um cronômetro no
>>>>>>>>>>>> estilo Peixe Urbano de forma que fique contando o tempo 
>>>>>>>>>>>> automáticamente no
>>>>>>>>>>>> servidor mesmo
>>>>>>>>>>>> sem a execução do script.
>>>>>>>>>>>>
>>>>>>>>>>>>  Por exemplo:
>>>>>>>>>>>>
>>>>>>>>>>>>  Um usuário entrou e viu uma oferta que tem 01:20:00, o mesmo
>>>>>>>>>>>> saiu da página e ficou 1h fora e quando voltou o tempo estava em 
>>>>>>>>>>>> 00:20:00.
>>>>>>>>>>>>
>>>>>>>>>>>>  Alguém tem idéia de como fazer isso de forma eficiente em um
>>>>>>>>>>>> servidor linux?
>>>>>>>>>>>>
>>>>>>>>>>>>  Att.
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Tiago Davi - Desenvolvedor Web.
>>>>>>>>>>>> http://tiagoaspnet.blogspot.com
>>>>>>>>>>>>
>>>>>>>>>>>>  Política e outros temas:
>>>>>>>>>>>> http://socorrobr.blogspot.com/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>  _______________________________________________
>>>>>>>>>>>> [email protected]
>>>>>>>>>>>> http://www.codeigniter.com.br
>>>>>>>>>>>>
>>>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>>>
>>>>>>>>>>>> ---------------------------
>>>>>>>>>>>> Oportunidade de negócio
>>>>>>>>>>>> http://www.franquiasargohost.net
>>>>>>>>>>>> ---------------------------
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Att.
>>>>>>>>>>> Lucas H. J. Sigaki
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> [email protected]
>>>>>>>>>>> http://www.codeigniter.com.br
>>>>>>>>>>>
>>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>>
>>>>>>>>>>> ---------------------------
>>>>>>>>>>> Oportunidade de negócio
>>>>>>>>>>> http://www.franquiasargohost.net
>>>>>>>>>>> ---------------------------
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Tiago Davi - Desenvolvedor Web.
>>>>>>>>>> http://tiagoaspnet.blogspot.com
>>>>>>>>>>
>>>>>>>>>>  Política e outros temas:
>>>>>>>>>> http://socorrobr.blogspot.com/
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________li...@codeigniter.com.brhttp://www.codeigniter.com.brhttp://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>
>>>>>>>>>> ---------------------------
>>>>>>>>>> Oportunidade de negóciohttp://www.franquiasargohost.net
>>>>>>>>>> ---------------------------
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Roberto Almeida Quilice Longhi
>>>>>>>>>> Folha de Pagamento - Web
>>>>>>>>>> Ramal: 1406
>>>>>>>>>> Tel: (11) 8599-9022
>>>>>>>>>> Programação Contmatic
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> [email protected]
>>>>>>>>>> http://www.codeigniter.com.br
>>>>>>>>>>
>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>
>>>>>>>>>> ---------------------------
>>>>>>>>>> Oportunidade de negócio
>>>>>>>>>> http://www.franquiasargohost.net
>>>>>>>>>> ---------------------------
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Allan Torres
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> [email protected]
>>>>>>>>> http://www.codeigniter.com.br
>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>
>>>>>>>>> ---------------------------
>>>>>>>>> Oportunidade de negócio
>>>>>>>>> http://www.franquiasargohost.net
>>>>>>>>> ---------------------------
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Tiago Davi - Desenvolvedor Web.
>>>>>>>> http://tiagoaspnet.blogspot.com
>>>>>>>>
>>>>>>>> Política e outros temas:
>>>>>>>> http://socorrobr.blogspot.com/
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> [email protected]
>>>>>>>> http://www.codeigniter.com.br
>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>
>>>>>>>> ---------------------------
>>>>>>>> Oportunidade de negócio
>>>>>>>> http://www.franquiasargohost.net
>>>>>>>> ---------------------------
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Eric Saboia - eric.saboia.org
>>>>>>> PHP Zend Certified Engineer
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> [email protected]
>>>>>>> http://www.codeigniter.com.br
>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>
>>>>>>> ---------------------------
>>>>>>> Oportunidade de negócio
>>>>>>> http://www.franquiasargohost.net
>>>>>>> ---------------------------
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> [email protected]
>>>>>> http://www.codeigniter.com.br
>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>
>>>>>> ---------------------------
>>>>>> Oportunidade de negócio
>>>>>> http://www.franquiasargohost.net
>>>>>> ---------------------------
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> [email protected]
>>>>> http://www.codeigniter.com.br
>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>
>>>>> ---------------------------
>>>>> Oportunidade de negócio
>>>>> http://www.franquiasargohost.net
>>>>> ---------------------------
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Eric Saboia - eric.saboia.org
>>>> PHP Zend Certified Engineer
>>>>
>>>>
>>>> _______________________________________________
>>>> [email protected]
>>>> http://www.codeigniter.com.br
>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>
>>>> ---------------------------
>>>> Oportunidade de negócio
>>>> http://www.franquiasargohost.net
>>>> ---------------------------
>>>>
>>>>
>>>
>>> _______________________________________________
>>> [email protected]
>>> http://www.codeigniter.com.br
>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>
>>> ---------------------------
>>> Oportunidade de negócio
>>> http://www.franquiasargohost.net
>>> ---------------------------
>>>
>>>
>>
>>
>> --
>> Eric Saboia - eric.saboia.org
>> PHP Zend Certified Engineer
>>
>>
>> _______________________________________________
>> [email protected]
>> http://www.codeigniter.com.br
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>> ---------------------------
>> Oportunidade de negócio
>> http://www.franquiasargohost.net
>> ---------------------------
>>
>>
>
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------
>
>


-- 
Eric Saboia - eric.saboia.org
PHP Zend Certified Engineer
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a