1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Javascritp] Como forçar full-refresh a pagina carregada com "history.go(-1)"

Discussão em 'Web Development' iniciada por Armadillo, 14 de Maio de 2008. (Respostas: 15; Visualizações: 4894)

  1. Armadillo

    Armadillo Folding Member

    01 pessoal!

    Hoje parece o dia do Javascript :007:

    entao passa-se o seguinte:
    Tenho um form, o "action" deste form manda-me para um ".asp". Dentro deste ".asp", tenho a seguinte linha de codigo:
    Código:
    response.write "<script>history.go(-1)</script>"
    
    Ou seja, depois de fazer o processamento todo, volta á pag. originaria. Mas o form mantem-me os dados inseridos. Como faço para o form nao manter os dados?

    Nao posso usar nem redirects nem nada do genero por n razoes que nao vale a pena explicar, por isso comentarios em que refiram essa opçao é puro spam.


    cumps
    abraço a todos
     
  2. MPalhas

    MPalhas Power Member

    talvez se houver algum evento idêntico ao onLoad, mas que também seja executado ao retroceder, mas se há eu não conheço

    outra solução não tão "bonita" pode ser, em vez de botão de submit crias apenas um botão, que ao ser clicado, chama uma função que armazena temporariamente os dados do formulário, apaga-o, e cria um formulário temporario, invisivel que por sua vez é submetido automaticamente

    EDIT:
    aqui uma melhor solução que acabei de encontrar:
    <meta http-equiv="pragma" content="no-cache">

    já testei numa form simples e resultou :D
     
    Última edição: 14 de Maio de 2008
  3. Mavors

    Mavors Power Member

    Para ASP tenta isto:

    Código:
    [SIZE=-1][COLOR=#800000][/COLOR][/SIZE]<% Response.CacheControl = "no-cache" %>>
    <% Response.AddHeader "Pragma", "no-cache" %>
    <% Response.Expires = -1 %>
    
    Podes meter conjuntamente com o código do MPalhas.

    O Pragma funciona fixe.
    Excepto em portais, não é boa prática.
     
  4. Armadillo

    Armadillo Folding Member

    aií pessoau!! ;)
    pah, nao deu... ja tinha tentado antes com os no-cache, pragmas e expires-1, e tambem nao tinha dado.
    Se calhar deve-se á plataforma que estou a usar.
    o evento onload tambem nao faz nada usando o "history.go(-1)"
    tou a ver que isto vai ficar assim e tá a andar.


    abracinhos a todos :007:
     
  5. Armadillo

    Armadillo Folding Member

    pessoal, este é o meu cabec e só funca no Opera.
    Código:
            <meta http-equiv="Content-Language" content="pt">
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
            <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
            <META HTTP-EQUIV="Expires" CONTENT="-1">
    
    mais alguma sugestao?

    cumps
     
  6. slack_guy

    slack_guy Power Member

    Segundo o que aprendi, obrigar a um reload efectivo da página, só o consegues do lado do servidor. E mesmo isso não é sempre garantido, por causa dos proxies.

    Para o Apache, uso:
    Código:
       FileETag None
       Header unset ETag
       Header set Cache-Control "max-age=0, no-cache, no-store, private"
       Header set Pragma "no-cache"
       Header set Expires "0"
    
    Para ASP e essas coisas do dotnet há algo semelhante. Mas já não ma lembra como fazer.
     
  7. Armadillo

    Armadillo Folding Member

    entao slack_guy, tudo bom?:cool:

    asp fully loaded, ja nao me lembro de mais o que possa pôr
    Código:
    <% Response.CacheControl = "no-cache"
    Response.CacheControl = "max-age=0"
    Response.CacheControl = "no-store"  
    Response.CacheControl = "private"  
    Response.AddHeader "Pragma", "no-cache"  
    Response.AddHeader "Expires", "0"   
    Response.Expires = 0  
    'response.ExpiresAbsolute = now %>
    
    falta algum?:D

    cumps

    ps: é por esta e por outras que prefiro aplicações stand-alone:007:
     
  8. slack_guy

    slack_guy Power Member

    Podes sempre acrescentar:
    Código:
    response.ExpiresAbsolute = Now() [B]- 1[/B]
    

    EDIT:
    Repara que eu estou a referir-me ao servidor, não à página. Isto são instruções para o browser. O que eu estou a dizer é que podes desactivar - não sei como - a cache no IIS para uma (ou mais páginas) e, assim, nem precisas de escrever esses cabeçalhos.
     
    Última edição: 15 de Maio de 2008
  9. Armadillo

    Armadillo Folding Member

    NOP :D
    fica na mesma

    este topico ta a tornar-se anedotico, pelo menos eu tou a rir-me sozinho a olhar para o código.
    [​IMG]

    cumps
     
  10. Armadillo

    Armadillo Folding Member

    Teoricamente serviria apenas isto.
    Código:
    Response.CacheControl = "private" 
    
    Julgo que deve ser as DLL's fantasticas aqui dos manos dos CMS que me estao a marar isto.
    Tambem nao é grave. Sempre deu pra rir á custa de meia-duzia de linhas de codigo.

    Ja tou como o Jotenko "Deixem de ser nerds" :lol:.

    agradeço a todos por perderem tempo com esta treta :rrotflm:
    abraços
     
  11. Armadillo

    Armadillo Folding Member

    nao, slack_guy.
    obrigado pela ajuda. ja tentei de tudo. ja tive ai tambem, por acaso, e por outras semelhantes.

    nao vale apena continuar a bater no ceguinho.
    há alguma coisa do alem (DLL) que me tá a modificar as propriedades e eu tenho que me render. e, sim, tenho mesmo que usar esse componente malefico do Demo. :007:

    CMS really suck!!

    Cumps, abraços e bejinhos

    (pah hoje tou de bom humor, é o que me vale :D)

    ps: ouçam acid jazz a programar que é bem fixola:003:

    ainda nao vi o segundo mas digo qualquer coisa ;)

    EDIT: Ja vi, mas os poderes do demo sao reamente grandes. Vou ler um bocado do Tao of programming
    Nao se preocupem que isto nao vai ser pra correr em centrais nucleares ;) E mesmo assim nao crasha, é so pr ficar mais "venito"
    :wavey:
     
    Última edição: 15 de Maio de 2008
  12. Mavors

    Mavors Power Member

    Lol, isso e uma garrafa de whisky. :joker:

    Esta ideia pode parecer um bocado estúpida e artesanal mas já tentaste fazer com que o url mude por parametro para ser obrigado a fazer refresh?

    tipo:

    <%
    time_var = year(now) & month(now) & day(now) & hour(now) & minute(now) & second(now)
    %>
    <a href="paginaExemplo.asp?parametro=<%=time_var%>">A minha página</a>
     
  13. slack_guy

    slack_guy Power Member

    O workaround que o Mavors sugere é pertinente. Nos primórdios do AJAX, tinhamos de fazer uma coisa semelhante por causa do IE, caso contrário vinha sempre o conteúdo anterior, que estava em cache.

    EDIT:
    ooppsss... lembrei-me que estás a falar do 'back button'. Ou seja, não há link. hum... voltando ao problema....
     
  14. Mavors

    Mavors Power Member

    Não li que era o back button.

    Sendo assim só mesmo com os truques de no-cache. :P
     
  15. Armadillo

    Armadillo Folding Member

    Já tentei, fica na mesma :D Pus no endereço, mas prontos... Nao faz nada mas é fixe programar e ainda me pagam pra isso.
    Eu tou rofl. A serio... Deve ser ja a musica a fazer efeito

    Aí, party people , "idendo" dar dois de letra com Jack Daniels, que ele é um gajo porreiro, que eu tambem de caminho vai falar com ele.
    Deixem lá, vao amestrar o mouse, mudar as lampadas do vosso escritório, façam o vosso proprio compilador com uma linguagem exotica. Este codigo acabou de mudar para o estado Legacy.

    For jet it.
    Go home. :D

    Pessoal, obrigadao pela vossa disponibilidade! Voces sao 5*!!
    Abraço a todos.

    Voces nao respondam mais ou vou ser obrigado a fazer report:joker:
    Ide pro geral, que tem assuntos interessantes. Deixem de ser nerds!! lolol

     

Partilhar esta Página