2011-09-28 2 views
2

캐싱을 사용하여 오프라인에서 사용할 수있게 해주는 웹 응용 프로그램을 만들고 있습니다. Chrome을 실행하면 모든 것이 올바르게 작동합니다 (오프라인 및 온라인). 하지만 iPad에서 실행할 때 링크가 더 이상 작동하지 않으며 페이지를로드하지 못합니다. 캐싱을 제거하면 링크가 다시 작동하므로 분명히 캐싱과 관련이 있습니다. webapp의 별도 페이지로 직접 이동하면 오류가 발생하는 Safari에서도 잘 작동합니다. 기본적으로 모든 링크는 jQuery Mobile에서 AJAX로로드됩니다. rel = "external"를 추가하여이를 변경하면 문제가 해결되지만, 분명히 그렇게하고 싶지는 않습니다.캐시 캐싱 링크 (iPad의 jquery 모바일)

캐싱을 사용하려면이 코드를 추가하고 모든 파일 (스크립트, CSS, 이미지, HTML)이 포함 된 매니페스트 파일을 만들었습니다. 누구든지 그 문제가 무엇인지 알 수 있습니까?

+2

아약스 요청을 캐시 할 수 없다는 것을 알았습니다. jquery 모바일에서 오프라인으로 작업하는 유일한 방법은 외부 링크를 사용해야하므로 옵션이 아닌 모든 아약스 링크를 제거하거나 단일 HTML 파일에 전체 앱을 배치하는 것입니다 (이상적이지는 않지만 지금은 가장 좋은 솔루션 임). . – Prd87

답변

1

매니페스트를 사용하여 캐싱 작업을하는 동안이 기능을 사용 해본 적이 있습니다. 내가 발견 한 것은 Chrome에 제한이 없다는 것입니다. iPad와 iPhone이 있습니다. 이것은 약 5 메가 바이트 정도로 작습니다. 가능하면 이미지를 제거하고 스크립트에서 YUI Compressor를 사용하십시오.

실제로 Ajax 요청은 캐시 될 수 있습니다. 시스템은 요청이 AJAX 또는 일반 전체 요청인지 여부는 신경 쓰지 않습니다. ajax로 검색하려는 URL을 나머지 애셋처럼 매니페스트에 넣기 만하면됩니다.

희망이 있습니다.