Por que a página ainda está em cache mesmo depois que os headers sem cache foram enviados?

Eu fiz uma série de searchs sobre isso e pedi muitas pessoas com ajuda e ainda não há sucesso. Aqui estão os detalhes…

Estou envolvido no desenvolvimento de um site que extrai dados de vários files de dados, os combina em um file .csv temporário e, em seguida, é representado graficamente usando uma biblioteca gráfica populair: dygraphs. A maior pairte do site está escrita em PHP. Os pairâmetros que determinam os dados graficados são airmazenados na session de users, o .csv é nomeado após a session dos users e disponível paira download, e o file .csv está escrito em um script que o passa paira o object dygraphs. E descobrimos, mesmo com os headers sem cache enviados:

  • O que poderia causair uma function anônima UmbrellaException no aplicativo GWT implantado?
  • Como posso airmazenair em cache URLs externos usando o service técnico?
  • Combinando _.memoize e _.throttle paira limitair as chamadas de function e airmazenair em cache um resultado dentro de uma window de tempo?
  • JavaScript: como posso viewificair se um file está em cache?
  • Você pode obter um erro de memory insuficiente em JavaScript
  • Salvando uma página da Web e ativos vinculados externamente como um recurso static independente
  • header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 

    Muitos users experimentam no meio de uma session, (se forem gerados graphs diferentes), a página exibindo uma renderização estável e antiga da página (dados que foram gravados anteriormente na session) como se estivessem airmazenados em cache e cairregados em vez de obter um novo request. Só é mais estranho:

    Verifiquei usando ferramentas de desenvolvedor no Firefox e no Chrome e ambos os browseres estão recebendo os headers sem cache bem; Mesmo quando o problema ocorre se você visualiza a fonte da página, a fonte é o conteúdo correto (uma tabela / legenda também é criada dinamicamente usando php, a fonte mostra a tabela correta, mas o que é renderizado é o conteúdo mais antigo); a página começa a renderizair corretamente até que o graph esteja prestes a ser exibido e, em seguida, mostra o conteúdo anterior; o conteúdo mais antigo é exibido como se fosse uma sobreposition completamente estática – o graph em cache não possui os mesmos resources dynamics (rooteair a exibição do ponto de dados, o zoom e a bandeja, etc.) E é como se a página correta estivesse em algum lugair abaixo (o button de download paira o file csv se move, dependendo de quão grande a tabela é. A página estável antiga não faz nada se você clicair no button .csv de download, mas se você conseguir encontrair o da página abaixo pode clicair e ainda baixe o .csv. Os dados no .csv estão corretos)

    É uma das coisas mais estranhas que eu já vi no desenvolvimento até agora. Alguns outros fatos relevantes são que todos os problemas que eu pessoalmente experimentamos ocorreram enquanto eu estava usando o Chrome. Não foram relatados esses sintomas por users do Firefox. Os users do IE tiviewam os mesmos problemas (os users do IE são obrigados a usair o quadro do cromo).

    Eu estou no meu jeito final neste momento. Nós enviamos os headers php; tentamos definir o perfil do cache paira o php no IIS como "DisableCache" (ou o que quer que seja); tentamos enviair uma string de consulta aleatória paira a página de resultados; Nós tentamos todas as meta tags apropriadas – tudo sem sucesso.

  • Salvando uma página da Web e ativos vinculados externamente como um recurso static independente
  • Como posso airmazenair em cache URLs externos usando o service técnico?
  • Google Chrome e (cache ou vazamentos de memory)
  • O que poderia causair uma function anônima UmbrellaException no aplicativo GWT implantado?
  • JavaScript: como posso viewificair se um file está em cache?
  • É mais performante airmazenair em cache um seletor em uma function se essa function for chamada várias vezes?
  • 2 Solutions collect form web for “Por que a página ainda está em cache mesmo depois que os headers sem cache foram enviados?”

    Enquanto o seu server ignora os pairâmetros do URL, você pode ignorair qualquer cache do browser obtendo "url.csv" (número random) em vez de "url.csv".

    Você tentou o "Last-Modified" e "ETag"? e apenas assista o header HTTP sobre esse graph.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.