我做这个一吨的研究,并问了很多人的帮助,仍然没有成功。 下面是详细信息...
我参与开发一个网站,从各种数据文件中提取数据,将其合并成一个临时.csv文件,然后使用流行的图形库作图:dygraphs。 该网站的大部分是用PHP编写的。 即确定作图存储在用户会话中的数据参数,该.csv的用户会话命名,并提供下载,然后将.csv文件是写在其传递到dygraphs对象的脚本。 而我们发现,即使是没有缓存的头发送:
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
在会话过程中许多用户的体验,(如果产生足够不同的图)显示页面的较旧的,静态渲染(数据他们在稍早图表)页面,就好像它被缓存,而是装载得到一个的新的要求。 它只是变得怪异,但:
我已经在Firefox和Chrome浏览器使用的开发工具检查和两种浏览器都接受无缓存头就好了; 即使如果您查看网页的源文件出现问题,来源是正确的内容(表/传说也动态地使用PHP创建,源显示正确的表,但什么是呈现较旧的内容); 在网页开始正确地呈现,直到图形即将被显示,然后显示了旧的内容; 旧的内容显示出来,就像它是一个完全静态重叠 - 缓存的图形不具有相同的动态特性(翻转数据点显示,缩放和平移等),这是因为如果正确的页面是它下面的地方(CSV文件移动的下载按钮取决于表有多大。年龄越大,静态页面什么也不做,如果你点击下载按钮的.csv,但如果你能设法找到了一个在它下面的页面,您可以点击仍然下载.csv格式。在.csv的数据是正确的)
这是我在看到发展迄今为止最奇怪的事情之一。 其他一些相关的事实是,当我在使用Chrome的所有问题我个人的经验发生。 这些症状的非已报告了Firefox用户。 IE用户有(IE用户被迫使用镀铬边框)同样的问题。
我在这一点上我束手无策。 我们发送的PHP头; 我们已经尝试设置IIS上的“DisableCache”(或其他)为PHP缓存配置文件; 我们试图发送一个随机的查询字符串的搜索结果页。 我们已经尝试了所有适当的meta标签 - 所有没有成功。