我正在使用用户数据,不能允许它被缓存。
我正在使用Firefox 4和Tomcat 6服务器进行测试,缓存控制设置为no-cache,no-store,private,must-revalidate,max-age = 0。我还设置了expires标头。
但Firefox仍然在它的缓存中生成一个wyciwyg(你在缓存中是什么)。这可能被认为是历史机制而不是缓存机制。但它仍然存储用户数据。
一个例子是http://www.w3schools.com/Ajax/ajax_example.asp。 在Firefox 4.0中,about:cache(特别是about:cache?device = disk)页面显示了wyciwyg://文件以及设置为“No expiration time”的过期日期。更糟糕的是,在关闭并重新启动浏览器后,缓存仍然存在。
经过调查,对我来说,wyciwyg是用document.write()javascript调用的内容生成的。
它如何阻止Firefox缓存?理想情况下,不更改document.write()?
答案 0 :(得分:2)
您是否使用Firebug检查了缓存标头是否实际发送到浏览器?
但无论如何,有一个简单的解决方案来阻止缓存:在请求URL中添加一个timestamp参数。
url = '/my/ajax/script?_=' + new Date().getTime();
许多JS库也使用这个技巧。如果你正在使用jQuery,那么将cache: false
传递给AJAX请求选项就足够了。