Como forçar a atualização de uma página aberta com um EmbPage? E para piorar, imagine uma carga onde essa página não é HTML mas um arquivo TXT, cujo conteúdo pode ser alterado.
Form.MetaEquiv.AddItem('Expires', '-1')
O TextBlock3 deve estar na interface, e marcado com formato HTML.
Agora sim,
Informações Complementares
Esse era o meu maior problema do dia, mas felizmente resolvido em 2 minutos, uma página com um IFrame que não poderia ser cacheada no browser, ou seja, deveria ser carregada a cada abertura.
Incluindo o EQUIV-PragmaGx não inclui automaticamente o Pragma no inicio do cabeçalho, não no gerador .Net, então é necessário incluí-lo através de um comando MetaEquiv.
<html>
<head>
…
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
Para incluir colocar no evento Start a linha de código, a propriedade Expires determina o numero de segundos de validade da página. -1 indica que a página deve ser recarregada instantaneamente, mas é possível nesse local colocar um now() para pegar a data e hora corrente.
Event Start
Form.MetaEquiv.AddItem('Pragma', 'no-cache')Form.MetaEquiv.AddItem('Expires', '-1')
EndEvent
Esse comando deveria ser suficiente para recarregar a página, mas em algumas situações não funciona, como na minha, :(
Não funcionou
Se você se encontra no time do não funcionou na primeira vez, segue-se outra técnica, via DOM do JS.Não existem opções no IFrame, e isso não é um problema do Genexus, para determinar o cachê da pagina, inclusive em nosso caso temos a carga não de uma página, mas de um arquivo txt.
A saída foi agregar um parâmetro randômico, junto ao arquivo, de forma a forçar um processamento antes da carga da pagina. Para isso, uma interrogação seguida de um número randômico (nesse caso a data e hora corrente), resolve.
· Dica original:
http://www.dynamicdrive.com/forums/archive/index.php/t-9974.html
http://www.dynamicdrive.com/forums/archive/index.php/t-9974.html
Agora sim,
No meu caso deu certo, estava utilizando um Internet Explorer modelo 9.0, flex, ..., se você dirige outro modeloprecisa avaliar a questão de compatibilidade do browser aos comandos JS programados.
Agora, o mais estranho de tudo isso, é que ao finalizar a programação JS resolvi comentar todas as alterações e testar novamente a aplicação para ver se o erro de atualização ainda persistia, e imagina o que aconteceu. Tudo funcionava normalmente, ou seja, alguma coisa foi alterado internamente que corrigiu o problema. Por via das duvidas mantive os ajustes.
- http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Http+headers+in+GeneXus+applications,
- http://wiki.gxtechnical.com/commwiki/servlet/hwiki?MetaEquiv+Property,
Nenhum comentário:
Postar um comentário