前篇文章写了如何通过flex录入数据,同理我们也可以通过flex端来修改和删除数据,但数据更新后遇到一个问题,
flex端无法得到更新后的数据。
当清除浏览器缓存后,flex得到更新的数据,结论是缓存问题。
首先考虑是html缓存,试过加cache文件头等方法后,问题依然。
然后考虑可能是flash的缓存,通过给html页面的swf引用添加时间戳,问题照旧。
最后想到是不是REST的缓存问题呢,因为REST的调用方式是通过http,浏览器会对相同的url调用进行缓存。
修改REST的调用方法,增加url随机数,问题解决。
var featureService:HTTPService = new HTTPService();
var rnd : Number = Math.round(Math.random()*1000);
var featureServiceURL:String = configXML..service.company;
featureService.url = featureServiceURL+"?rand="+rnd;
featureService.method = "GET";
featureService.addEventListener(ResultEvent.RESULT,parseXML);
featureService.send();
但是如果调用flex的api比如FindTask取数据,却没有设置缓存的参数,难道没人遇到过这样的问题吗?