0

这是我的第一个 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);
}
4

2 回答 2

1

我不是一个安静的 Delphi 或 Flex 人。但是原理是一样的。我们在 C#/Silverlight 中所做的是在 url 的末尾附加一个随机查询字符串。

所以你有网址: -

httpService.url = urlVar;

你想做:-

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

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

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

于 2011-01-24T04:00:38.527 回答
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);
}
于 2012-06-07T07:59:21.410 回答