2011-09-05 2 views
0

이 플래시/플렉스 응용 프로그램을 가지고있어 URLRequest 호출 문제가 발생했습니다. 서버에 전화를 걸면 콘텐츠가 정상적으로 수신됩니다. 그 내용이 캐시에 저장되고 다음에 URLRequest가 로컬 캐시를 사용하여 검색합니다. 때때로 작동하지만 때로는 통화가 끝나지 않은 경우 - 보류중인으로 유지됩니다. 최신 플래시 플레이어와 다른 브라우저를 사용하고 있습니다. 내 컴퓨터에서 크롬을 사용하여 이슈를 복제 할 수 있으며 동료는 파이어 폭스에서 복제 할 수 있습니다. 플래시 플레이어 로그 파일을 살펴 봤는데 통화가 성공하고 통화가 보류 상태에있을 때 다른 점이 없습니다 ...flash.net.URLRequest 통화가 보류 상태로 유지됨

또한 플래시 플레이어를 최신 버전으로 업그레이드 할 때까지 내 친구가이 문제를 재현 할 수 없습니다.

웹 서버 로그에는 문제가 발생하지 않았으며 google 크롬의 네트워크 도구는 해당 시간 요청이 로컬 캐시를 사용하고 있음을 확인했기 때문에 이는 서버 측 문제가 아닌 것으로 생각합니다.

현재 클라이언트가 만료일 및 no-cache를 사용하여 캐시를 사용하지 않도록 강요하므로이 문제를 해결했지만 캐시를 사용하고 싶습니다. 왜 이러한 일이 발생하는지 이해하고 싶습니다.

고마워요!

책임 코드 :

loader = new utils.URLLoader(); 
loader.dataFormat = flash.net.URLLoaderDataFormat.BINARY; 
loader.addEventListener(flash.events.Event.COMPLETE, this.onLoad); 
loader.addEventListener(flash.events.IOErrorEvent.IO_ERROR, this.onErr); 
loader.load(new flash.net.URLRequest(URL)); 

갱신 :

가 지금은 캐시가 눈부시게 반짝되지 않는다는 것을 알게되었습니다. 요청 전에 항상 캐시를 정리했지만 여전히이 오류를 재현 할 수 있습니다. GET 요청은 아직 보류 중으로 표시되지만 이번에는 wireshark가 실행되어 재미있는 결과를 표시합니다. 문제가있는 요청은 wireshark에 로그인되어 있지 않습니다. 어떻게 가능할까요?

+0

오류가 있습니까? 전화가 끝나지 않았을 때? – Benny

+0

나는 내 직감으로 가서 그 결과가 당신의 결과에 달했다고 말한다. 코드를 게시하십시오. –

+0

나는 어떤 오류도 내지 않았다. 나는 타이머가 설정되어 있지 않고 문서에 idleTimeout이 기본값으로 0이기 때문에 오류가 없다고 생각합니다. – fritz

답변

0

것은은 URLLoader 파견 수있는 오류의 모든 종류를 듣고하십시오 : 디버그 모드가 아닌 경우 URLLoader's Adobe LiveDoc

, 몇 가지 오류 그러므로, 침묵있어, 발생하지만 잡힐하지 될 수 있습니다.

+0

감사! 이미 IOErrorEvent를 듣고있어 SecurityErrorEvent 만 남았습니다. try catch (error : Error) 블록에서 .load 호출을 설정해야할까요? .swf는 디버그 모드가 아니지만 플래시 플레이어의 디버그 버전이 있습니다. – fritz

+0

URLLoader에 대한 LiveDoc 페이지의 맨 아래에 URLLoader에 의해 실행 된 것을 수신하는 예제가 있습니다. 가능한 한 정확하게이 예제를 재현하여 해고 된 이벤트가 잡힐 수 있도록 제안합니다 (불쌍한 영어에 대해 유감스럽게 생각합니다). – LoremIpsum

0

swf를 포함하는 .html 래퍼 코드에서 allowScriptAccess = "sameDomain"을 allowScriptAccess = "always"로 변경해보십시오. 두 번 나타납니다.

관련 문제