none
CRONÔMETRO REGRESSIVO GLOBAL

    Question

  • Boa tarde à todos...

    Gostaria de saber como eu faço um cronômetro regressivo que qualquer um que chegue no site, possa visualiza-lo, ou seja... se eu abrir o browser em uma máquina e o contador for 01:15:16 e eu abrir em outro pc, o contador deve ser exatamente igual(tem que estar sincronizado). lembrando que a hora inicial e a hora final eh sempre variável.


    Espero ter sido claro ao explicar minha dúvida.

    Desde já agradeço a força.

    Abraços
    Thursday, October 01, 2009 8:04 PM

Answers

  • Ola  John

    Faça um relogio com Javascript..... so que em vez de somar o tempo vc diminiu, simples assim....

    um Exemplo :

    http://www.7is7.com/otto/countdown.html


    o script esta neste ponto
    <
    script src="countdown/countdown.js" type="text/javascript">
    </script>



    Procure por CountDown na web que vai achar outros
    Fernando Cerqueira MVP.ASP.NET TEAM AJAX.TOOLKIT CONSULTOR & ARQUITETO
    Thursday, October 01, 2009 10:52 PM
  • A Solução do Fernando é muito boa.
    Só que integra o javascript com o teu código asp.net para poder controlar o início e o fim da contagem..


    Código javascript pra contagem:
    (Utilizando o PrototypeJS)
    <script type="text/javascript">
    			
    			var YY = 2009;
    			var MM = 8;
    			var DD = 16;
    			var HH = 1;
    			var MI = 59;
    			var SS = 59; 
    			
    			function atualizaContador() {
    			  var hoje = new Date();
    			  var futuro = new Date(YY,MM-1,DD,HH,MI,SS); 
    			
    			  var ss = parseInt((futuro - hoje) / 1000);
    			  var mm = parseInt(ss / 60);
    			  var hh = parseInt(mm / 60);
    			  var dd = parseInt(hh / 24); 
    			
    			  ss = ss - (mm * 60);
    			  mm = mm - (hh * 60);
    			  hh = hh - (dd * 24); 
    			
    			  var faltam = '';
    			  faltam += (dd && dd > 1) ? dd+' <span class="alt">dias</span> , ' : (dd==1 ? '1 <span class="alt">dia</span> , ' : '');
    			  faltam += (toString(hh).length) ? hh+' <span class="alt">horas</span> , ' : '';
    			  faltam += (toString(mm).length) ? mm+' <span class="alt">min e</span> ' : '';
    			  faltam += ss+' <span class="alt">seg</span>'; 
    			
    			  if (dd+hh+mm+ss > 0) {
    			    $("regressiva").innerHTML = faltam;
    			    setTimeout(atualizaContador,1000);
    			  } else {
    			    $("regressiva").innerHTML = 'CHEGOU!!!!';
    			    setTimeout(atualizaContador,1000);
    			  }
    			}
    			
    		</script>
    Coloca um <span id="regressiva"></span> Para poder aparecer o valor da contagem atualizado...

    Depois tu muda dinamicamente os valores das variáveis lá no início do código javascript..
    Friday, October 02, 2009 3:25 AM
  • oLA jOHN,

    A sugestão por JS é proque é impensalvel para mim fazer em server side uma rotina que a cada segundo tem que ir no servidor pegar os dados.... Se vc precisar de interação eu sugiro algo hibrido, ou seja, faça a interface em JS mesmo e a cada 1 min vc vai no servidor via JS instanciando um serviço que vai retornar dados apenas de controle e segurança, assim tera o melhor dos 2 mundos.


    Fernando Cerqueira MVP.ASP.NET TEAM AJAX.TOOLKIT CONSULTOR & ARQUITETO
    Friday, October 02, 2009 9:36 PM

All replies

  • Ola  John

    Faça um relogio com Javascript..... so que em vez de somar o tempo vc diminiu, simples assim....

    um Exemplo :

    http://www.7is7.com/otto/countdown.html


    o script esta neste ponto
    <
    script src="countdown/countdown.js" type="text/javascript">
    </script>



    Procure por CountDown na web que vai achar outros
    Fernando Cerqueira MVP.ASP.NET TEAM AJAX.TOOLKIT CONSULTOR & ARQUITETO
    Thursday, October 01, 2009 10:52 PM
  • A Solução do Fernando é muito boa.
    Só que integra o javascript com o teu código asp.net para poder controlar o início e o fim da contagem..


    Código javascript pra contagem:
    (Utilizando o PrototypeJS)
    <script type="text/javascript">
    			
    			var YY = 2009;
    			var MM = 8;
    			var DD = 16;
    			var HH = 1;
    			var MI = 59;
    			var SS = 59; 
    			
    			function atualizaContador() {
    			  var hoje = new Date();
    			  var futuro = new Date(YY,MM-1,DD,HH,MI,SS); 
    			
    			  var ss = parseInt((futuro - hoje) / 1000);
    			  var mm = parseInt(ss / 60);
    			  var hh = parseInt(mm / 60);
    			  var dd = parseInt(hh / 24); 
    			
    			  ss = ss - (mm * 60);
    			  mm = mm - (hh * 60);
    			  hh = hh - (dd * 24); 
    			
    			  var faltam = '';
    			  faltam += (dd && dd > 1) ? dd+' <span class="alt">dias</span> , ' : (dd==1 ? '1 <span class="alt">dia</span> , ' : '');
    			  faltam += (toString(hh).length) ? hh+' <span class="alt">horas</span> , ' : '';
    			  faltam += (toString(mm).length) ? mm+' <span class="alt">min e</span> ' : '';
    			  faltam += ss+' <span class="alt">seg</span>'; 
    			
    			  if (dd+hh+mm+ss > 0) {
    			    $("regressiva").innerHTML = faltam;
    			    setTimeout(atualizaContador,1000);
    			  } else {
    			    $("regressiva").innerHTML = 'CHEGOU!!!!';
    			    setTimeout(atualizaContador,1000);
    			  }
    			}
    			
    		</script>
    Coloca um <span id="regressiva"></span> Para poder aparecer o valor da contagem atualizado...

    Depois tu muda dinamicamente os valores das variáveis lá no início do código javascript..
    Friday, October 02, 2009 3:25 AM
  • POIS EH... 

    em javascript seria uma solução ótima se não fosse por 2 motivos, mesmo que as opções de javascript estejam desativadas no browser, o sistema tem que funcionar, até mesmo por questões de segurança. E, quando sofrer a interferência externa, pelo administrador, ele não responderá por estar rodando do ladodo cliente. Neste caso acho que só um ajax (update panel) poderia resolver isso.


    Valew mesmo pela força, abraços
    Friday, October 02, 2009 7:24 PM
  • oLA jOHN,

    A sugestão por JS é proque é impensalvel para mim fazer em server side uma rotina que a cada segundo tem que ir no servidor pegar os dados.... Se vc precisar de interação eu sugiro algo hibrido, ou seja, faça a interface em JS mesmo e a cada 1 min vc vai no servidor via JS instanciando um serviço que vai retornar dados apenas de controle e segurança, assim tera o melhor dos 2 mundos.


    Fernando Cerqueira MVP.ASP.NET TEAM AJAX.TOOLKIT CONSULTOR & ARQUITETO
    Friday, October 02, 2009 9:36 PM