2009-09-13 5 views
0

풍부한 인터페이스를 사용하는 Flex 애플리케이션이 있습니다. 사용자는 데이터를 작성하여 작성한 데이터 목록에 즉시 표시되도록 할 수 있습니다. 데이터는 Flex 애플리케이션의 HTTPService POST 요청과 서버 측의 데이터를 처리하는 PHP 양식을 사용하여 MySQL 데이터베이스에 저장됩니다. 설명을 위해 데이터가 단순히 질문이라고 가정 해 봅시다. Safari와 Firefox 모두에서 데이터가 데이터베이스에 추가 된 다음 다시 불러 오기 위해 호출 될 때 데이터가 즉시 표시됩니다. 그러나 IE를 사용하면 데이터가 데이터베이스에 추가되지만 즉시 표시되지는 않습니다. 때로는 사용자가 캐시를 비우고 IE를 종료하고 다시 시작해야 할 때가 있습니다. 그러나 항상 데이터베이스에 추가됩니다. PHP 양식은 간단한 MySQL SELECT 문을 사용하여 데이터베이스에서 데이터를 가져옵니다.IE 캐시 또는 POST 문제가있는 Flex 및 PHP 코드

IE에서 일정 기간 동안이 데이터를 캐싱하는 데 알려진 문제가 있습니까? 그것을하지 않는 방법이 있습니까?

답변

1

저는 최근에 Fiddler이라는 도구를 사용하여 시스템의 웹 트래픽을 감시하고 요청 및 응답을 수정할 수도 있습니다. 귀하의 경우, 당신은 그것을 설치하고 reverse proxy로 설정하여 플렉스 애플 리케이션이 PHP 레이어와 통신 할 수 있도록 할 것입니다.

설정이 완료되면 데이터의 상황을보다 쉽게 ​​추적 할 수 있습니다. (JSON 구조를 트리로 볼 수있는 JSON 플러그인을 발견했으나 기본적으로 XML보기를 지원합니다.)

트래픽을 조금 더 잘 이해하고 설명하면 도움을 줄 수 있습니다. . 그것은 304 HTTP 문제처럼 들리지 않습니다. 데이터가 IE로 반환되는지 확인하십시오.

+0

나는 그것이 새로 고침 몇이나 IE를 다시 시작 후 때때로 표시됩니다 때문에 반환되고 있음을 알고있다. MySQL에서 처음 보았 기 때문에 처음으로 데이터베이스에 추가된다는 것을 알고 있습니다. 내 PHP 폼 호출에 타임 스탬프를 추가하면이 문제를 해결할 수 있습니까? – joshholat

+0

데이터가 예상대로 IE에 의해 반입되고 있는지 확인할 필요가 있습니다. IE를 다시 시작해야하는 상황을 찾아야합니다. 캐시 문제 인 것처럼 들리지만 Fiddler와 같은 것을 설치하면 브라우저 간의 차이점을 파악하는 데 도움이됩니다. 그러나 웹 서버 로그를보고 다른 브라우저 사이의 응답을 비교해 볼 수도 있습니다. 문제가 될 수있는 부품을 제거해야합니다. DB, PHP, 웹 서버, 브라우저, 플렉스 ... – Glenn

+0

거의 확실하게 캐시 헤더 문제입니다. HTML 페이지가 캐시 된 사본을 다시 사용할 수 없다는 것을 나타내는 적절한 헤더와 함께 전달되는지 확인해야합니다. 서버에서 캐싱을 금지하는 헤더를 보내지 않으면 Internet Explorer에서 GET 요청에 대한 응답을 캐시하고 다시 사용할 수 있습니다. 문제 해결 방법 : POST 메소드, 임의의 쿼리 문자열 또는 서버를 구성하여 올바른 캐시 지정 문을 전송하십시오. 참고 : 무작위가 아닌 쿼리 문자열 만 사용하면 캐싱을 방지하기에 충분하지 않습니다. www.fiddler2.com/redir/?id=httpperf를 참조하십시오. – EricLaw

0

IE는 아약스 요청과 같은 항목을 캐싱하는 것으로 유명합니다. 내용이 렌더링되기 전에

header("Pragma: no-cache"); 

/반환 : - 일반적인 큰 스틱 캐시 야해 중요한 요청에 대해이

때문에 PHP를 호출 .... 프라 그마 헤더가없는 캐시에 설정되어 있는지 확인합니다 브라우저에. 또는 ajax url에 추가 매개 변수로 타임 스탬프를 추가하십시오. 두 방법 모두 서버로드에 영향을 줄 수있는 중간 캐싱 서비스 (예 : redis, squid 프록시 등)가 파손되는 것을 의미합니다.

A는 더 깊이 해석에 여기에서 찾을 수 있습니다 : http://thecodeabode.blogspot.com/2010/10/cache-busting-ajax-requests-in-ie.html