2011-11-18 3 views
2

HTML5 캐싱을 실험하고 있는데 문제가 발생했습니다. 장치가 /Offline.aspx로 리디렉션해야 오프라인하지만 그렇지 않은 경우HTML5 캐시 폴백

CACHE MANIFEST 

/Default.aspx 
/Offline.aspx 
/js/jquery-1.6.4.min.js 
/js/jquery.mobile-1.0rc2.min.js 
/css/jquery.mobile-1.0rc2.min.css 
/css/images/ajax-loader.png 
/css/images/icons-18-white.png 

FALLBACK: 
/Offline.aspx 

NETWORK: 
* 

그래서 내 시작 페이지가 Default.aspx를이다. 이제는 /Default.aspx가 캐싱되어 있기 때문에 알아낼 수 있습니다. 이제 /Default.aspx를 매니페스트에서 제거한다고 가정 해 봅시다. HTML 태그의 매니페스트를 참조하기 때문에 캐시 된 것입니다.

나는 html 캐싱에 관한 수십 페이지를 읽었지만 대답을 찾을 수 없습니다. 조언이 정말 좋습니다!

감사

답변

0

예,이는 매니페스트를 참조하는 페이지가 매니페스트 자체 (명시 적)에 선언되지 않은 경우,이 매니페스트의 일부로 암시 적으로 간주되기 때문에 예상한다 행동에 " 마스터 "페이지가 표시되고 그 지점부터 앞으로는 캐시되고 매니페스트가 변경 될 때까지 업데이트되지 않습니다.

오프라인 동작을 추가하는 응용 프로그램에서 같은 동작을 경험하고 관찰 된 동작을 더 잘 이해하기 위해 사양을 파고들 때까지이 사실은 완전히 분명하지 않았습니다.

내 솔루션은 해당 페이지의 동적 부분을 별도의 Ajax 호출로 전환하여 페이지가 캐시 되었더라도 (암시 적으로 또는 명시 적으로) 업데이트 된 부분이 (캐시되지 않은) Ajax가 호출한다. 그러나, 오프라인 일 때 Ajax 호출에 대한 폴백 (fallback) 엔트리를 만들려는 경우 (또는 아닐 경우 Ajax 오류를 처리)