none
Como posso impedir que as procedures sejam reexecutadas no reload da página? RRS feed

  • Pergunta

  • Olá pessoal,

    Estou com uma dificuldade e gostaria de uma ajuda. O problema é o seguinte,
    possuo uma página em ASP 3 que ao ser carregada executar procedures no sql server 2000, que trazem diversos valores, dos quais trato na página em uma listagem entre abas. A medida que o cliente navega pelas abas, ele tem a possibilidade descartar alguma aba ou não, clicando em um botão pra recusa ou aceite de determinada aba. Acontece que toda vez que realizada está operação de descartar ou aceitar dados da aba, o javascript executa um submit para gravar os dados em outra página de persistência, e o formulário atual e recarregado.
    A pergunta é: Como posso impedir que as procedures sejam reexecutadas no reload da página, sendo que já possuo os dados da execução seguinte?
    Ao meu ver ocorre desperdicio de recursos do sistema com o reload neste caso.


    sexta-feira, 23 de março de 2007 13:46

Respostas

  • Ricardo,

    você tem que fazer esse controle. Por exemplo, você poderia armazenar uma informação em um cookie (ou campo hidden) indicando para onde ele quer ir e armazena no servidor (em uma variável de sessão) qual o próximo passo na aplicação. Sempre que houver um submit você compara estes valores e atualiza estes dados. Se ele tentar dar um refresh na página, serão obtidos os dados da página anterior, e os valores não irão bater e você pode dar uma mensagem de erro para o cliente e não executar a procedure.

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    sexta-feira, 23 de março de 2007 16:51
    Moderador
  • Eu fiz desta forma:

    Na pagina inicial, coloquei uma Session("blabla") = true

    e na pagina do submit

    if Session("blabla") = true then ....

    e

    if Session("blabla") = false (no final).

    Se ele der reload, não vai registrar novamente os dados...


     - Não sei se isso pode ter ajudar a pensar em algo para utilizar com as abas... -

    Abs

    domingo, 25 de março de 2007 17:03

Todas as Respostas

  • Ricardo,

    você tem que fazer esse controle. Por exemplo, você poderia armazenar uma informação em um cookie (ou campo hidden) indicando para onde ele quer ir e armazena no servidor (em uma variável de sessão) qual o próximo passo na aplicação. Sempre que houver um submit você compara estes valores e atualiza estes dados. Se ele tentar dar um refresh na página, serão obtidos os dados da página anterior, e os valores não irão bater e você pode dar uma mensagem de erro para o cliente e não executar a procedure.

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    sexta-feira, 23 de março de 2007 16:51
    Moderador
  • Eu fiz desta forma:

    Na pagina inicial, coloquei uma Session("blabla") = true

    e na pagina do submit

    if Session("blabla") = true then ....

    e

    if Session("blabla") = false (no final).

    Se ele der reload, não vai registrar novamente os dados...


     - Não sei se isso pode ter ajudar a pensar em algo para utilizar com as abas... -

    Abs

    domingo, 25 de março de 2007 17:03
  • Ricardo e Diogo,

    A idéia da fazer o controle do submit pela Session é muito interessante, acho que irá funcionar sim, vou implementar e dou um retorno.

    Ricardo Spinoza.
    sexta-feira, 6 de abril de 2007 22:05