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.
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…
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.
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.
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.
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.
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.