Evitando problemas com o botão "voltar" do browser

alguém sabe algum lugar que tem informações sobre isso? na aplicação que estou desenvolvendo temos muitos problemas por causa disso, as vezes acabamos criando umas “gambiarras” em JavaScript pra evitar problemas. Qualquer informação será bem-vinda.

abraços a todos!

Mais qual problema ?
q q esta acontecendo com sua aplicação ?
posta ae pra nois !! ehheEHh
valeu !

[]'s

acontece de tudo! [:p]

veja um exemplo: um botao que exclui o ultimo registro de uma lista… tem registros de 1 a 10… vc manda excluir e ficam os registro de 1 a 9…
o cara volta pelo browser e ve a lista com registros de 1 a 10 e manda excluir… ele nao vai apagar o ultimo q esta sendo visualizado, vai apagar o 9!, a lista ficara com registros de 1 a 8.

pra resolver esse problema eu fiz uma gambiarrazinha que nao deixa isso acontecer, mas o ideal seria que ele forcasse desse um reload ao voltar pelo browser… :frowning:

sugestoes? :smiley:

valeu pessoal!

o botão voltar não submete a pagina, por isso vc nunca vai ver a tela atualizada. o que vc pode fazer é não permitir o uso do voltar do browser, e criar um botão voltar da sua app p/ vc controlar esse fluxo e sempre atualizar as telas.

ou deixar como vc fez mesmo, sempre forçando um reload. mas acho meio foda isso.
prefiro desabilitar o voltar do browser.

[]'s

O que eu faço no caso de apagar é enviar o usuário de volta a mesma página atualizada e ali dar o aviso de que foi apagado com sucesso.
E se mesmo assim ele resover voltar, o interessante é que ele apagasse por uma chave primária como um código, assim não teria problema se ele tentasse apagar um código que não existe… 8)

pq num usa um ´token´(uma flag), pra saber se o usuário já fez akela ação… daí vc pode redirecionar ele pra outra pág…
qdo a requisição entrar no servlet, vc verifica a flag… se ela existe, a ação já foi feita… se num existe, vc cria ela e faz a ação…
tem que elaborar um pouco mais para o seu caso, mas é pra dar certo…

[quote=ArturSampaio]pq num usa um ´token´(uma flag), pra saber se o usuário já fez akela ação… daí vc pode redirecionar ele pra outra pág…
qdo a requisição entrar no servlet, vc verifica a flag… se ela existe, a ação já foi feita… se num existe, vc cria ela e faz a ação…
tem que elaborar um pouco mais para o seu caso, mas é pra dar certo…
[/quote]

Smart Idea… se vc usa o Struts jah tem alguns eskemas basicos que soh precisam ser acionados para isso funcionar.

http://www.javaworld.com/javaworld/javatips/jw-javatip136.html

Boa sorte…

Vc pode resolver isso usando alguma engine de gerenciamento de fluxo ( o struts tem isso, da um olhada lá).

Outra forma, que inclusive usei, foi colocar uma meta tag para sempre que carregar a pagina realizar um reload (ou pode fazer isso com AJAX !!!) para que ela sempre exiba dados atuais.

A questão do botão voltar do browser é antiga e sempre trouxe problema para aplicaçaõ que dependiam de um caminho ou fluxo.

Espero ter te ajudado

Estou com um problema com botão voltar do browser na minha aplicação…

Alguém sabe como impedir que o botão do browser volte? pode ser desabilitando, mas como faço isso?

Pode ser tbm voltando para outra página

Olá!

Esqueci de avisar como resolvi, peço desculpas:

<% response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); %>

Essa para mim ainda não é a solução ideal. Vou pesquisar uma melhor assim que tiver tempo. Ela não resolve, por exemplo, o problema do F5 (atualizar/reload). Vou estudar como utilizar o sendRedirect no Struts.

abraços!

da uma pesquisada no forum. ja foi postado como desabilitar o botão voltar do browser.

[]'s

Essa é uma solução um tanto “invasiva”, prefiro deixar o botão “Voltar”. E de qualquer forma, o usuário pode apertar Backspace, Alt + seta p/ esquerda etc, isso não resolve por completo.

abraços,