2 जून 2014 संपादित करें: आईओएस 7.1 पर अधिकतम कैश आकार 300 एमबी है।
एक ग्राहक ने मुझे हाल ही में यह सटीक प्रश्न पूछा, इसलिए मैंने जांच की।
IOS6 के अनुसार, इन दो अलग बातें हैं (मेरे सभी परीक्षणों iOS6.1 पर किया गया है):
- एक वेबसाइट एक .manifest का उपयोग कर, मोबाइल सफारी
- के साथ पहुँचा होम स्क्रीन पर एक वेबपैप, वेबसाइट
उपयोगकर्ता की अनुमति के साथ .manifest के साथ एक वेबसाइट 50 एमबी कैश का उपयोग कर सकती है। यह और अधिक उपयोग नहीं कर सकता है। यह मान सेटिंग/सफारी/उन्नत में पाया और साफ़ किया जा सकता है। यदि आप कैश में अधिक सामान लगाने का प्रयास करते हैं, तो error
ईवेंट आग होगी और window.applicationCache.status
आईडीएलई जाएगा।
एक वेबएप अपनी वेबसाइट की तुलना में एक ही कैश साझा नहीं करता है। कैश सेटिंग्स/सफारी/उन्नत साफ़ करने से आपके लिए होम स्क्रीन वेबैप कुछ भी नहीं होगा। यह उपयोगकर्ता इनपुट के बिना 50 एमबी से अधिक कैश स्वीकार करेगा, लेकिन मुझे बिल्कुल पता नहीं है कि मैंने सफलता के साथ 60 एमबी के साथ परीक्षण किया, पूरी तरह से सुलभ ऑफ़लाइन। * संपादित करें: 83 एमबी, सफलता के साथ प्रयास किया गया) मुझे नहीं पता कि यह कहां है आईओएस सेटिंग्स में डेटा देखा जा सकता है। मुझे कहीं नहीं लगता है।
परीक्षण करना *** में दर्द था जब तक मुझे spec नहीं मिला। एक एपीआई है जो आईओएस 6 पर पूरी तरह से काम करती है।
आप window.applicationCache.status
की जाँच करनी चाहिए, जिससे आपको पता चलता एप्लिकेशन राज्य है, और निम्न इवेंट (कटौती और उनके श्रोता के साथ अपने कोड से पेस्ट, तो) क्या:
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);
सभी progress
आईओएस 6.1 पर काम कर रहे हैं, भले event.loaded
और event.total
एक वेबपैप जांच करके शुरू होता है, तो noupdate
को आग लगती है यदि .manifest समान है। स्थिति IDLE
है।
तो .manifest बदल गया है, स्थिति DOWNLOADING
है, अपने मेनिफ़ेस्ट में प्रत्येक फ़ाइल के लिए progress
घटना की आग, तो स्थिति UPDATEREADY
और updateready
आग है।
यदि आप ऑफ़लाइन हैं, तो error
ईवेंट आग और स्थिति IDLE
है।
आप के साथ
var online = navigator.onLine ? 'online' : 'offline';
यह काम करता है लेकिन चश्मा यह अविश्वसनीय है कहते हैं ऑनलाइन/ऑफ़लाइन स्थिति का परीक्षण कर सकते हैं।
तीन और चीजों को खत्म करने के लिए:
- मेरी प्रकट cache.manifest नामित और इस
<html manifest="cache.manifest">
- की तरह घोषित किया जाता है मेरी .htaccess है
AddType text/cache-manifest manifest
और ExpiresByType text/cache-manifest "access plus 0 seconds"
- मेरे ऐप
<meta name="apple-mobile-web-app-capable" content="yes">
है
इस एपीआई के साथ, यह समझना आसान है कि हुड के नीचे क्या चल रहा है। हालांकि, अपने स्वयं के परीक्षण करना सुनिश्चित करें, मैं इस परिणामों के 100% निश्चित नहीं हूं या वे एक नए आईओएस संस्करण के साथ कर सकते हैं। मैं अधिकतम आकार के लिए आगे परीक्षण करूंगा।
चेक इस बाहर: http://stackoverflow.com/questions/2772908/max-size-ipad-iphone-offline-application-cache – mattdlockyer