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 の末尾にランダムなクエリ文字列を追加することです。

だからあなたは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 に答える