none
Refresh RRS feed

  • Pergunta

  •  

    Boa tarde Pessoal,

     

    Estou com um problema aqui e estou tendo muita dificuldade pra resolver. Tentei de várias formas, mas nada.

    Tenho uma página, em ASP que exibe diversas figuras que estão em um diretório.

    Abaixo da figura, um link que redireciona para a mesma página, porém com uma string "excluifoto" e o nome da foto. Por exemplo:

    o nome da página é: fotos.asp, quando clico no link "excluir foto", abaixo da foto, ele direciona para:

    fotos.asp?acao=excluir&foto=foto1.jpg

    Na propria pagina fotos.asp, eu recupero as strings e deleto a foto.

    Depois de deletar dou um response.redirect para fotos.asp, sem as strings.

    Até aí tudo bem... funciona perfeitamente. O problema é que a foto ainda fica aparecendo, pois fica em cache, tenho que pressionar F5 para ela sumir.

    Tentei colocar pra dar refresh na página, mas vira um loop eterno.. hehe... fica dando refresh sem parar... aí não vira.. Tem como dar refresh somente na primeira carga da página? Ou existe alguma outra forma de resolver?

     

    Fico no aguardo.

    quarta-feira, 9 de abril de 2008 20:45

Respostas

  • Pessoal,

     

    Consegui fazer uma "gambiarra aqui"... mas acho que ficou nojento.... bem... pelo menos está funcionando. Fiz o seguinte:

     

    Criei uma pagina excluifoto.asp. Essa pagina tem o codigo pra excluir a foto e colocar outra no lugar da que foi excluida, com o mesmo nome... ate ai ja funcionava.. tudo bem...

    apos esse processo, eu pedi para criar uma sessão: session("refresh") e atribui o valor 1

     

    <%

    '###codigo que exclui a foto

    'xxxxxxx isso já estava funcionando xxxxxxx

    '###

     

    session("refresh") = 1 'Cria a sessão e atribui o valor 1

    response.redirect "fotos.asp"

    %>

     

    Na fotos.asp eu fiz o seguinte:

     

    <%
         if session("refresh") = 1 then

              Session("refresh") = 0
    %>
              <meta http-equiv="refresh" content="0">
    <%

         else

         end if

    %>

    Depois antes mesmo de ele atualizar, ele atribui o valor 0 à sessão aí ele para de dar refresh, ou seja, só dá refresh uma vez....

     

    Vou ter problemas futuros ao fazer isso? Se alguém souber de uma forma melhor, me fale...

     

    Vou deixar o post aberto por mais uns 3 dias....

     

    quinta-feira, 10 de abril de 2008 15:20

Todas as Respostas

  • Tenta fazer assim, insira esse código no Load da página que ele só irá entrar no if a primeira vez.

     

    if (!IsPostBack)

    {

    // código para fazer refresh

    }

    quarta-feira, 9 de abril de 2008 20:56
  • Olá Eder,

     

    Não sei se entendi direito, mas acredito que esse problema pode ser resolvido adicionando a seguinte marcação ao ASPX:

     

    Code Snippet

     

    <% Response.CacheControl = "no-cache"; %>

    <% Response.AddHeader("Pragma", "no-cache"); %>

    <% Response.Expires = -1; %>

     

     

    Coloque logo acima da linha:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

     

    Provavelmente isto resolve seu problema de cache.

     

    Caso este post seja util, não esqueça de marcar e se ele resolveu seu problema não deixe de marcar o tópico como respondido. Caso ainda tenha alguma dúvida entre em contato e terei o maior prazer em ajudar.

     

    Abraços.

     

    quinta-feira, 10 de abril de 2008 00:27
  • pessoal... bom dia...

     

    Não estou usando asp.net estou usando ASP.

     

     

    Fico no aguardo,

    quinta-feira, 10 de abril de 2008 10:59
  • Olá novamente Eder,

     

    Estas informações que eu passei funcionam normalmente em ASP puro, conforme você pode verificar em:

    http://support.microsoft.com/kb/234067

     

    Não esqueça de marca a mensagem como "útil", caso tenha ajudado e de marcar o tópico como resolvido caso isto solucione seu problema.

    quinta-feira, 10 de abril de 2008 12:07
  • Tem razão.. é pq no primeiro exemplo eu vi um ; no final de cada linha, ai nem olhei o resto... no segundo exemplo já estava sem o ;

    Bem, mas de qualquer forma, não deu certo. Dei uma pesquisada e encontrei uma "suposta" solução em um site.... um kra estava passando pelo mesmo problema, postaram o códio abaixo, mas o cara não voltou pra falar se deu certo.

    Parece que o código atualiza a imagem ao carregar a página... mas eu não entendi como funciona. Alguém pode dizer se tem algum sentido?

     

    Code Snippet

    <script>
    var cont = 0;
    function inicio (){
    var imagens = new Array();
    imagens[0] = "foto1.jpg";
    imggens[1] = "foto2.jpg";
    setTimeout("inicio()",10000);
    document.getElementById('local').innerHTML = "<img src=\""+imagens[cont]+"\" />";
    if (cont <= imagens.length)
      cont++;
    else cont = 0;
    }
    window.onload = inicio();
    </script>
    <div id="local"><img src="img.jpg" /></div>

     

     

    Fico no aguardo,
    quinta-feira, 10 de abril de 2008 12:46
  • Pessoal,

     

    Reabri o post pois não está funcionando..... em primeiro instante até pensei q estivesse... mas quando fui ver.. não tava rolando não...

     

    ele fica atualizando a imagem... mas com o que está em cache... ele não vai no caminho verificar se a imagem mudou....

     

     

    quinta-feira, 10 de abril de 2008 12:57
  • Pessoal,

     

    Consegui fazer uma "gambiarra aqui"... mas acho que ficou nojento.... bem... pelo menos está funcionando. Fiz o seguinte:

     

    Criei uma pagina excluifoto.asp. Essa pagina tem o codigo pra excluir a foto e colocar outra no lugar da que foi excluida, com o mesmo nome... ate ai ja funcionava.. tudo bem...

    apos esse processo, eu pedi para criar uma sessão: session("refresh") e atribui o valor 1

     

    <%

    '###codigo que exclui a foto

    'xxxxxxx isso já estava funcionando xxxxxxx

    '###

     

    session("refresh") = 1 'Cria a sessão e atribui o valor 1

    response.redirect "fotos.asp"

    %>

     

    Na fotos.asp eu fiz o seguinte:

     

    <%
         if session("refresh") = 1 then

              Session("refresh") = 0
    %>
              <meta http-equiv="refresh" content="0">
    <%

         else

         end if

    %>

    Depois antes mesmo de ele atualizar, ele atribui o valor 0 à sessão aí ele para de dar refresh, ou seja, só dá refresh uma vez....

     

    Vou ter problemas futuros ao fazer isso? Se alguém souber de uma forma melhor, me fale...

     

    Vou deixar o post aberto por mais uns 3 dias....

     

    quinta-feira, 10 de abril de 2008 15:20