편집 : 2 월 6 일 2014 : iOS7.1의 최대 캐시 크기는 300Mb입니다.
고객이 최근에이 정확한 질문을했기 때문에 조사를 실시했습니다. iOS6의 당으로
는 이러한 다른 두 가지가 있습니다 (내 모든 시험은 iOS6.1에서 수행 한) :
- 모바일 사파리
- 으로 액세스되는 별도로 .manifest를 사용하여 웹 사이트를, 웹 사이트에서 생성 된 홈 화면의 웹 응용 프로그램
.manifest가있는 웹 사이트는 최대 50MB의 캐시를 사용할 수 있으며 사용자 권한이 필요합니다. 더 이상 사용할 수 없습니다. 이 값은 설정/사파리/고급에서 찾아서 지울 수 있습니다. 캐시에 더 많은 정보를 넣으려고하면 error
이벤트가 실행되고 window.applicationCache.status
은 유휴 상태가됩니다.
웹 응용 프로그램은 웹 사이트와 동일한 캐시를 공유하지 않습니다. 캐시 설정/safari/advanced를 지우면 홈 화면 webapp에 대한 작업이 수행되지 않습니다. 그것은 사용자 입력없이 캐시의 50mb 이상을 받아 들일 것이지만 정확히 얼마나 많이 (나는 성공적으로 오프라인으로 접근 할 수있는 60mb로 테스트했다.) 편집 : 83MB로 시도, 성공 나는 이것을 어디에서 알지 못한다. iOS 설정에서 데이터를 볼 수 있습니다. 나는 아무데도 추측하지 않는다.
테스트는 내가 spec을 찾을 때까지 ***의 고통이었습니다. iOS6에서 완벽하게 작동하는 API가 있습니다.
window.applicationCache.addEventListener('checking', onChecking);
window.applicationCache.addEventListener('noupdate', onNoupdate);
window.applicationCache.addEventListener('downloading', onDownloading);
window.applicationCache.addEventListener('progress', onProgress);
window.applicationCache.addEventListener('cached', onCached);
window.applicationCache.addEventListener('updateready', onUpdateready);
window.applicationCache.addEventListener('obsolete', onObsolete);
window.applicationCache.addEventListener('error', onError);
모든도, 아이폰 OS 6.1에 progress
작업 :
당신은 응용 프로그램 상태, 그리고 다음과 같은 이벤트가 (절단과 리스너 그래서, 내 코드에서 붙여 넣기) 무엇을 알려줍니다, window.applicationCache.status
을 확인해야합니다 event.loaded
및 event.total
웹 응용 프로그램은 확인하여 시작한 다음 .manifest가 동일한 경우 noupdate
을 발생시킵니다. 상태는 IDLE
입니다. 별도로 .manifest가 변경 한 경우
는, 상태, DOWNLOADING
이다 매니페스트에있는 각 파일에 대한 progress
이벤트가 발생 후 상태는 UPDATEREADY
과 updateready
화재입니다.
오프라인 일 경우 error
이벤트가 발생하고 상태는 IDLE
입니다.
당신은 그것은 작동하지만 사양이 신뢰할 말한다
var online = navigator.onLine ? 'online' : 'offline';
와 온라인/오프라인 상태를 테스트 할 수 있습니다.
더 3 가지 마칩니다 :
내 매니페스트는 cache.manifest 이름이 <html manifest="cache.manifest">
같이 선언 내 htaccess로는 내 응용 프로그램은 <meta name="apple-mobile-web-app-capable" content="yes">
을 AddType text/cache-manifest manifest
및 ExpiresByType text/cache-manifest "access plus 0 seconds"
을 가지고있다한다
에 체크 아웃 : 명확한 설명은 http://stackoverflow.com/questions/2772908/max-size-ipad-iphone-offline-application-cache – mattdlockyer