通过HTTPService动态加载.XML文件时禁用缓存?

时间:2011-01-24 03:47:07

标签: xml caching load dynamic httpservice

这是我的第一个CMS应用程序,其中包括Delphi 7。

我使用5个不同的XMLListCollections,它们是从服务器上的本地文件动态加载的。 HTTPService很好地将第一个加载到DataGrid中,但是在加载任何后续XML文件时,它会加载与以前完全相同的集合!我认为这必须是缓存吗?

如何在加载本地XML文件时关闭缓存?我已经尝试了一些建议,比如涉及标题等等,但似乎没有任何东西可以直接处理加载本地文件。

private function loadXMLData(urlVar:String):void 
    var httpService:HTTPService = new HTTPService();
    httpService.url = urlVar;
    httpService.resultFormat = "e4x";
    httpService.addEventListener(FaultEvent.FAULT, httpService_fault);
    httpService.addEventListener(ResultEvent.RESULT, httpService_result);
    httpService.send();
}

private function httpService_fault(evt:FaultEvent):void {
    var title:String = evt.type + " (" + evt.fault.faultCode + ")";
    var text:String = evt.fault.faultString;
    alert = Alert.show(text, title);
}

private function httpService_result(evt:ResultEvent):void {
    var xmlList: XMLList;
    xmlList = XML(evt.result).Events;
    ArtistsData = new XMLListCollection(xmlList);
}

2 个答案:

答案 0 :(得分:1)

我不是安静的Delphi或Flex家伙。但原则相同。我们在C#/ Silverlight中做的是在url的末尾附加一个随机查询字符串。

所以你有网址: -

httpService.url = urlVar;

你想做的事: -

httpService.url = urlVar + 'Date=' + currentdatetimealongwithmilliseconds;

这绝对应该忽略缓存并发出新请求。

注意: - 正如我所说,我不是Flex人,您需要在灵活解决方案中转换上述行。

答案 1 :(得分:0)

在编辑代码时,我注意到语法错误。括号的数量不匹配。我认为应该有一个括号,我用你的代码添加并加粗了一个?

我不知道这是否会解决您的问题,但是消除代码中任何错误的内容会缩小问题范围。:

private function loadXMLData(urlVar:String) { // <== HERE?
    var httpService:HTTPService = new HTTPService();
    httpService.url = urlVar;
    httpService.resultFormat = "e4x";
    httpService.addEventListener(FaultEvent.FAULT, httpService_fault);
    httpService.addEventListener(ResultEvent.RESULT, httpService_result);
    httpService.send();
}

private function httpService_fault(evt:FaultEvent) {
    var title:String = evt.type + "(" + evt.fault.faultCode + ")";
    var text:String = evt.fault.faultString;
    alert = Alert.show(text, title);
}

private function httpService_result(evt:ResultEvent) {
    var xmlList: XMLList;
    xmlList = XML(evt.result).Events;
    ArtistsData = new XMLListCollection(xmlList);
}