Search code examples
xmlapache-flexflash-builder

Flex - after update XML file show old data in Chrome


I have simple flex aplication, which read XML file and show in dataGrid. I have problem when I change XML file, so Chrome don't refresh this XML data after refresh not even I restart Chrome . I think XML data leave in Chrome cache?
How can I refresh this data automaticly?? In firefox functionier all correct..
my flex code:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx"
               creationComplete="aktualityService.send()">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.controls.Alert;
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;


            [Bindable]
            private var xmlData:ArrayCollection;

            protected function aktualityService_resultHandler(event:ResultEvent):void
            {
                xmlData = new ArrayCollection();

                for each (var aktualita:Object in event.result.aktuality.aktualita)
                {
                    xmlData.addItem(aktualita);
                }
            }

            protected function aktualityService_faultHandler(event:FaultEvent):void
            {
                Alert.show("ERROR read xml: " + event.fault.faultString);               
            }

        ]]>
    </fx:Script>

    <fx:Declarations>
        <s:HTTPService id="aktualityService"
                       url="data/aktuality.xml"
                       result="aktualityService_resultHandler(event)"
                       fault="aktualityService_faultHandler(event)"
                       method="GET"/>

    </fx:Declarations>


    <s:DataGrid id="dataGridId"
                y="100" x="0" dataProvider="{xmlData}" />
</s:Application>

then I export release build in flash builder and copy to my server.


Solution

  • To prevent caching use a random number after the file path like:

    <s:HTTPService id="aktualityService"
                   url="data/aktuality.xml?{UIDUtil.createUID()}"
                   result="aktualityService_resultHandler(event)"
                   fault="aktualityService_faultHandler(event)"
                   method="GET"/>