2012-10-08 5 views
2

iPad 용 PhoneGap 앱에는 온라인 데이터베이스에 저장된 데이터를 표시하는 iFrame이 있습니다. 추가 단계에서이 데이터를 JSON을 통해 다운로드하고 앱에서 편집합니다. 끝나면 iFrame으로 돌아가지만 여전히 이전 데이터를 보여줍니다. JSON을 사용하면 새로운 올바른 데이터를 얻을 수 있습니다.iOS PhoneGap. iFrame 캐싱 방지

... 즉, 응용 프로그램은 내가 페이지

<meta http-equiv="cache-control" content="no-cache" /> 
<meta http-equiv="expires" content="0" /> 

에서 일반적인 메타 태그 물건을 포함하여 캐싱을 방지하기 위해 모든 노력을

iframe이의 내용과 함께 페이지를 호출 캐시 get-parameter로서의 타임 스탬프. JavaScript를 통해 전체 iFrame을 다시 렌더링하려고 시도했지만 여전히 작동하지 않습니다. 나는 응용 프로그램을 다시 시작할 때

function loadFrame() { 
var cid = localStorage.getItem("cid"); 
var ts = new Date().getTime(); 
var url = pageURL+"?c=" +cid + "&timestamp=" + ts; 

localStorage.removeItem("cid"); 

ifid = "iframe_" + ts; 

$("#iframe_wrap").html('<iframe name="iframe" id="'+ifid+'" src="'+url+'" class="fullscreen"></iframe>'); 
$("#"+ifid).hide(); 
$("#"+ifid).one("load",onLoad); 

console.log("URL in iFrame '#"+ifid+"': "+url); 
} 

만, 나는 새 페이지

이 문제를 해결하기 위해 어떤 방법이 있나요 얻을?

+0

가 어떻게'iFrame'로 돌아 않습니다 :)하지 않았다? 어쩌면 iFrame이 포함 된 페이지에 타임 스탬프를 추가해야합니까? 아니면 단일 페이지 앱입니까? – Tony

+0

그것의 단일 페이지 애플 리케이션,하지만 내보기 컨테이너에서 AJAX를 통해로드 얻을. 불행히도 귀하의 조언도 작동하지 않았다. – flecki89

답변

2

문제가 해결되었지만 부분적으로는 iOS의 잘못입니다!

iFrame의 페이지도 AJAX 요청의 데이터를 표시한다는 점을 잊어 버렸습니다. iOS 6에서는 "cache : false"(jQuery 사용)라고해도 AJAX 요청이 캐싱됩니다.

최신 데이터를 얻으려면 매번 고유 한 임의의 값을 매개 변수로 추가해야합니다 (타임 스탬프 사용). 나는이 매개 변수를 추가하기 위해 내 동료 (그는 데이터 표시 페이지를 만들었습니다)에게 권하고 지금은 작동합니다.

내가 직접 응용 프로그램에서 데이터를로드, 이미이 트릭은, 그가