|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Script de recarregamento da página com JavascriptRealizamos um script em uma página, com Javascript, que faz com que se recarregue constantemente e assegura que não se obtém a página sempre desde o cache. Em algumas ocasiões necessitamos que uma página recarregue seus conteúdos a cada certo tempo, para mostrar informação atualizada às pessoas que a visitam. Isto é Às vezes típico dos serviços que mostram informação em tempo real, segundo se vai produzindo.
Este artigo surge como resposta à dúvida de um visitante que, ademais, necessitava que o tempo que passasse entre cada recarregamento da página fosse sempre diferente. Para isso, simplesmente fazemos que se recarregue a página depois de um número de segundos aleatório. Um tema que ademais é necessário para que tudo funcione corretamente é que a página não se mostre desde o cachê do navegador. Sabemos que quando uma página já foi solicitada previamente, fica muitas vezes no cache de nossos navegadores de modo que, se se volta a solicitar, se mostra a cópia que temos armazenado localmente, em vez de se solicitar e baixar através do servidor de Internet. Nestes sistemas de recarregamento há que se assegurar que os conteúdos não se obtenham desde o cache, para que as atualizações possam ser vistas corretamente com cada recarregamento da página. O recarregamento com Javascript Vejamos como resolvemos todas estas necessidades, neste caso mediante Javascript. Para começar, temos que obter um número aleatório de segundos, para que o recarregamento se realize a intervalos irregulares, tal como nos solicitavam. Para isso, vamos utilizar a seguinte função de cálculo de números aleatórios, que comentamos e provamos em outros exemplos relatados em CriarWeb.com. function aleatorio(inferior,superior){ numPossibilidades = superior - inferior aleat = Math.random() * numPossibilidades aleat = Math.floor(aleat) return parseInt(inferior) + aleat } Chamaremos à função para obter um número aleatório, neste caso entre 5 e 10: num_aleatorio = aleatorio(5, 10) Para solucionar o tema de que a página não se mostre desde o cache do navegador vamos enviar-lhe um parâmetro pela URL, assim a URL que solicitemos será sempre diferentes e nosso navegador se verá obrigado a solicitar a página ao servidor cada vez que se recarregue. Poderíamos ter utilizado outras técnicas como colocar no cabeçalho do http a ordem para que não se salve no cache, porém por experiência própria, esta é a única maneira que nos assegura que todos os navegadores vão recarregar a página solicitando sempre ao servidor. Vou gerar um string para enviá-lo por parâmetro a esta mesma página. Como dizíamos, o parâmetro o passaremos pela URL. Não faremos nada com este dado, mas como cada vez será diferente, nos assegura que o navegador sempre solicitará ao servidor a página, em vez de mostrar outra vez a que tem em cache. Utilizaremos a data e tempo para gerar o dato que mude sempre. minhaData = new Date() dato_url = minhaData.getYear().toString() + minhaData.getMonth().toString() + minhaData.getDate().toString() + minhaData.getHours().toString() + minhaData.getMinutes().toString() + minhaData.getSeconds().toString() Na variável dado_url salvamos o ano, seguido do mês, dia, horas, minutos e segundos. Como todos os dados de data, se têm que extrair desde um objeto date, que criamos com a sentença new Date(). Logo, a este objeto lhe invocamos diversos métodos para obter os dados que necessitamos. Os dados são devolvidos em tipo inteiro e para concatená-los como se fossem string, necessitamos aplicar o método toString(), que têm todos os objetos de Javascript para convertê-los em cadeias. Já só falta realizar o recarregamento propriamente dito. Para isso, temos que aplicar um atraso, que conseguiremos com a função setTimeout(), que recebe como primeiro parâmetro a instrução que se quer executar e como segundo parâmetro, o tempo em milésimos de segundos que se quer esperar. setTimeout("window.location='pagina.html?parametro=" + dado_url + "'", num_aleatorio * 1000) Se observarmos, utilizamos window.location para atribuir uma nova URL ao navegador. Logo, utilizamos a variável dado_url para passá-la como parâmetro. Ademais, para marcar o atraso entre recarregamentos utilizamos a variável num_aleatorio, multiplicada por 1000 para passar a milésimos de segundos. Isto é tudo. Pode-se ver o exemplo em funcionamento neste link.
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 1 categoria relacionada
Manuais relacionados com este artigo Dentro de Workshop de Javascript Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em Scripts em JavascriptComentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |