2011-05-13 67 views
2

我通过flex向服务器查询,第一次显示结果,但是当我插入一条新记录并下次查询时,它仅显示以前的结果(在I​​E中遇到问题,但不在Chrome中)。Flex cachy问题

回答

4

您可以参数化您的HTTP(?)的请求,并通过设置一个不断变化的参数,就可以确保你的回应永远不会被从缓存中读取。
在我下面的例子中使用参数的名称nocache此任务:

可以设置nocache参数在URL字符串:

var url:String = "http://data.your.server?nocache=" + new Date().getTime(); 

或者 - 如果您使用的是URLRequest,你可以设置它的data成员中:

//the url from where you get the data 
var url:String = "http://data.your.server"; 

var urlVars:URLVariables = new URLVariables(); 
urlVars.nocache = new Date().getTime(); 
//set the other parameters (if any) 

//attach the parameter list to your request 
var request:URLRequest = new URLRequest(url); 
request.data = urlVars; 

更新
这里new Date().getTime()将以毫秒为单位返回系统的当前时间,因此您可以确定,这种方式不会再次使用此参数值调用。

0

这是因为IE缓存了你的请求。

添加一个随机的查询字符串参数使用远程URL,就像http://myserver.com/fetch_data?random=4234324

(和随机我的意思不是使用4234324所有的时间,使用ActionScript来产生一个随机数,并追加到URL)

this KB from adobe