2009-07-01 3 views
0

몇 초마다 업데이트 된 데이터를 확인하기 위해 서버의 xml 파일을 폴링하는 flex 응용 프로그램을 작성 중이며 데이터를 캐싱하지 못하고 응답하지 못하는 문제가 있습니다. 업데이트됩니다. 나는 또한 요청 URL의 끝에 임의의 HTTP GET 매개 변수를 추가하려고했습니다flex가 외부 리소스를 캐싱하지 못하도록하십시오.

CacheControl: no-cache 
Pragma: no-cache 

:

나는 운이없이 다음을 사용하도록 IIS 제어판을 사용하여 헤더를 설정하려고 시도했습니다 ,하지만 그것은 요청을하기 전에 HttpService 클래스에 의해 제거 된 것처럼 보인다. 여기에 코드를 구현의 :

http.url = "test.xml?time=" + new Date().getMilliseconds(); 

를 그리고 여기 나를 실패한 생각하게 디버그 로그입니다 :

(mx.messaging.messages::HTTPRequestMessage)#0 
    body = (Object)#1 
    clientId = (null) 
    contentType = "application/x-www-form-urlencoded" 
    destination = "DefaultHTTP" 
    headers = (Object)#2 
    httpHeaders = (Object)#3 
    messageId = "AAB04A17-8CB3-4175-7976-36C347B558BE" 
    method = "GET" 
    recordHeaders = false 
    timestamp = 0 
    timeToLive = 0 
    url = "test.xml" 

사람이이 문제를 다루었은?

답변

2

캐시 제어 HTTP 헤더는 "캐시 제어"입니다 ... 하이픈을 메모하십시오! 트릭을해야합니다. 하이픈을 사용하지 않으면 작동하지 않을 수 있습니다.

0

나는 getTime()을 사용하여 날짜를 트릭을 한 숫자 문자열로 만듭니다. GET을 POST로 변경했습니다. 다른 파일 확장명이 다르게 캐시되는 몇 가지 문제가있었습니다. 예를 들어, .PHP 또는 .jsp로 같은 표준 동적 확장은 브라우저 캐시 및

private var myDate:Date = new Date(); 
[Bindable] 
private var fileURLString:String = "http://www.mysite.com/data.txt?" + myDate.getTime(); 

는 희망이 사람을 도움이되지 않을 수 있습니다.

나는 또한 헤더 매개 변수 톤을 던져 버렸지 만 트릭을 완전히하지는 못했다. 예 :

// HTTPService called service 
service.headers["Pragma"] = "no-cache"; // no caching of the file 
service.headers["Cache-Control"] = "no-cache";