2013-03-14 4 views
0

XML을 검색하는 앱이 있습니다. 실행하는 서버에서 ... 앱의 응답 속도를 향상시키고 가능하면 데이터를 스트리밍 할 때 오류가 발생할 가능성을 줄이려면 (가능한 경우) 서버에 대한 호출을 제한하려고합니다. 어떤 이유로 든 성공적으로 여행을하지 못합니다. 간헐적 인 네트워크 모니터 오류가 발생합니다. Wi-Fi 채널 충돌로 인해 발생할 수 있습니다. 그러나 전체 프로세스에서 여전히 잠재적 인 약점이 될 수 있습니다. 사용자가 앱 내에서 '작업'을 수행 할 때마다 서버를 호출해야합니다.서버에서 XML을 검색하고 장치에 저장하고 HTTPService URL에 해당 로컬 파일을 사용할 수 있습니까?

기기에서 로컬 저장소를 사용하여 XML 데이터를 검색하고 저장 한 다음 내 httpservice url 로컬 파일을 변경하고 싶습니다.

로컬 텍스트 파일에 구성 설정을 성공적으로 쓰고 읽으려고하기 전에 사용했던 몇 가지 코드가 있습니다. 따라서 이것이 정확히 달성 될 수 있는지, 정확히 정확히 어떻게되는지 확신 할 수 없습니다.

누군가가 공유 할 수있는 코드 예제에 대해 알려주는 빛에 감사드립니다. applicationStorageDirectory에서 기본적으로

답변

0

로드를가 donwload 존재하고 부하에 applicationStorageDirectory

에 XML을 저장 나던 경우 :

var xmlFile:File = File.applicationStorageDirectory.resolvePath("data.xml"); 
if (xmlFile.exists) 
{ 
    var fileStream:FileStream = new FileStream(); 
    fileStream.open(xmlFile, FileMode.READ); 
    var xml:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));// you will want to declare outside this scope, its just for show 
    fileStream.close(); 
}else{ 
    downloadAndSaveXML();// if it doesnt exist dowload it then save it and call load again! 
} 

저장합니다 :

//download .xml first and save in the onComplete handler, im calling the file "xml" 
var file:File = File.applicationStorageDirectory.nativePath("data.xml"); 
var stream:FileStream = new FileStream(); 
stream.open(file, FileMode.WRITE); 
stream.writeUTFBytes(xml.toXMLString()); 
stream.close(); 

이 아이디어를 얻을 ?

는 또한이 컴파일러 인수가 필요합니다 그래서 HTTPService를하여 XML

-locale en_US -use-network=false 

당신은 firstplace에서 파일을 dowloading 귀찮게 그냥 응용 프로그램

here a link to the topic에서 그것을 포함 수없는 온라인 찾아 나던

+0

내 요구 사항에 맞게 togehter를 작성해야하는 것 외에도 제공 한 코드는 절대적인 의미를 가지며 생각보다 간단합니다. ... 훌륭합니다 ... 최고 ... 감사합니다 ...이 문제를 해결할 것입니다. 서버의 라이브 데이터베이스에 대한 업데이트 속도 때문에 주기적으로 서버에서 데이터를 가져와야합니다. 로컬 저장 복사본의 수명이 24 시간을 초과하지 않도록하는 것으로 시작하겠습니다. – tamak

+0

U는 컴파일러 인수를 사용하지 말고 로컬 XML 파일을 사용합니다. – M4tchB0X3r

+0

지금 당면한 문제는 httpservice 을 통해 얻은 XML 데이터를 가져 와서 로컬 파일에 저장하거나 로컬 파일로 저장하는 방법입니다. – tamak