我有一个使用丰富界面的Flex应用程序。用户可以创建数据并立即显示在他们创建的数据列表中。使用来自Flex应用程序和PHP表单的HTTPService POST请求将数据存储在MySQL数据库中,以处理服务器端的数据。为了便于解释,我们假设数据只是一个问题。在Safari和Firefox中,数据会立即显示,因为它被添加到数据库中然后被调用以重新加载。但是,在使用IE时,数据IS会添加到数据库中,但它不会立即显示出来。有时它需要用户清空缓存,有时他们可能需要退出IE并重新启动它。但是,它始终被添加到数据库中。 PHP表单使用简单的MySQL SELECT语句从数据库中获取数据。
IE缓存此数据一段时间是否存在已知问题?有没有办法让它不这样做?
答案 0 :(得分:1)
我最近一直在使用名为Fiddler的工具,它可以让您查看系统上的网络流量,甚至可以修改请求和响应。在您的情况下,您将要安装它,并将其设置为reverse proxy,以便您的Flex应用程序通过它与PHP层进行通信。
设置完成后,您可以更轻松地跟踪数据发生的情况。 (我找到了一个JSON插件,可以让我将JSON结构视为树,但它原生支持XML视图)
一旦你理解并更好地解释了流量,我可能会帮助你。它听起来不像304 HTTP问题。确认数据正在返回IE。
答案 1 :(得分:0)
IE因缓存ajax请求之类的东西而臭名昭着。一般的大棒 - 关于不应缓存的重要请求,请确保将pragma标头设置为no-cache ....
所以在php调用中:
header("Pragma: no-cache");
在将内容呈现/返回到浏览器之前。或者,将时间戳添加为ajax URL的附加参数。这两种方法都意味着任何中间缓存服务都会被破坏(即redis,squid代理等),这可能会影响您的服务器负载。
可以在此处找到更深入的解释: http://thecodeabode.blogspot.com/2010/10/cache-busting-ajax-requests-in-ie.html