2011-06-08 4 views
29

यदि आप http://app.ft.com (फाइनेंशियल टाइम्स मोबाइल वेब ऐप) खोलते हैं, तो आपको ऐप को अपने "घर" में जोड़ने के लिए कहा जाता है।मैं आईपैड पर एचटीएमएल 5 स्थानीय स्टोरेज आकार में वृद्धि का अनुरोध कैसे कर सकता हूं, जैसे कि एफटी वेब ऐप करता है?

ऐसा करने के बाद, जब आप ऐप खोलते हैं, तो आपको फिर से स्थानीय स्टोरेज डेटाबेस आकार को 50 एमबी तक बढ़ाने की अनुमति देने के लिए कहा जाता है।

  • यह कैसे किया जा सकता है? क्या कुछ जावास्क्रिप्ट एपीआई कॉल है? अनुमतियां या जो कुछ भी?
  • क्या यह आईपैड (आईओएस?) विशिष्ट है, या यह अन्य वेबकिट ब्राउज़र पर काम करता है?
+7

स्थानीय डेटाबेस भंडारण (एसक्लाइट, 5 एमबी और सही चाल के साथ 50 एमबी तक बड़ा हो सकता है) के साथ स्थानीय-स्टोरेज (कुंजी-मूल्य भंडारण, 5 एमबी हार्ड सीमा) मिश्रण न करें – ohadpr

उत्तर

35

मैं इस बारे में कुछ जानना हो;)

एक मौजूदा डेटाबेस के लिए भंडारण आकार में वृद्धि का अनुरोध के लिए कोई एपीआई नहीं है। वृद्धि को मजबूर करने का एक तरीका है: डेटाबेस को डेटा को इस आकार में लिखें कि वृद्धि की आवश्यकता है, उपयोगकर्ता को संकेत दें। हालांकि, यह और धीमा होगा वर्तमान में आवंटित स्थान बताने का कोई तरीका नहीं है, इसलिए इसकी अनुशंसा नहीं की जाती है।

काले मेंढक यह सही का हिस्सा है: केवल साफ तरीका यह है एक बहुत बड़ी डेटाबेस उदाहरण के लिए जब इसे खोला है अनुरोध करने के लिए, यह है:

openDatabase('databaseName', '1.0', 'My Database', 50*1024*1024, … 

... अंतरिक्ष के 50MB अनुरोध करने के लिए।

हालांकि, जब उपयोगकर्ता पहली बार साइट पर जाता है, तो आप उन्हें एक बार में 50 एमबी सीमा के बारे में संकेत नहीं देना चाहेंगे; तो आप सोच सकते हैं कि आप पहले 5 एमबी के लिए पूछ सकते हैं, और फिर इसे 50 एमबी के साथ फिर से खोल सकते हैं? दुर्भाग्यवश, यह काम नहीं करता है - बढ़ी हुई मात्रा के साथ दूसरा खुला प्रयास, चुपचाप सफल होता है, आकार वृद्धि के लिए संकेत नहीं देता है और वास्तव में उपलब्ध आकार में वृद्धि नहीं करता है।

इसलिए एफटी ऐप 5 एमबी "पूर्वावलोकन" डेटाबेस से शुरू होता है, ताकि उपयोगकर्ता को पहले लोड पर संकेत नहीं दिया जा सके। यह इस 5 एमबी सीमा को पार करने की कोशिश नहीं करता है, क्योंकि किसी भी स्थान को सभी डेटाबेस में साझा किया जाना है।

यदि उपयोगकर्ता अधिक सामग्री के संग्रहण की अनुमति देना चुनता है, तो ऐप फिर 40 एमबी स्पेस के साथ एक अलग नाम के साथ डेटाबेस खोलने का प्रयास करता है (जिसके लिए उपयोगकर्ता को 50 एमबी स्वीकृति देने के लिए कहा जाता है)। यह उस डेटाबेस में 40 एमबी और मूल पूर्वावलोकन डेटाबेस में 5 एमबी की अनुमति देता है, इसलिए पंक्तियों को डालने पर न तो विफल होना चाहिए - क्योंकि 50 एमबी कुल वर्तमान में आईओएस पर सीमा है।

सभी ब्राउज़र वर्तमान में डेटाबेस स्पेस सीमाओं को अलग-अलग संभालते हैं, इसलिए यदि आप क्रॉस-प्लेटफ़ॉर्म की योजना बना रहे हैं, तो ध्यान से परीक्षण करें। डेस्कटॉप सफारी इसे काफी अच्छी तरह से संभालती है, जो बहुत बड़ी अनुमति देती है; क्रोम किसी भी वृद्धि की अनुमति नहीं देता है; आदि सभी "एचटीएमएल 5" कार्यान्वयन अजीब मायनों में अलग करने के लिए :)

+0

I एफटी ऐप के बारे में एक सवाल पूछा है, इस पर टिप्पणी करते हुए दिमाग? धन्यवाद – PaulM

+0

@ रोवन क्या आप जानते हैं कि 50 एमबी सीमा है: डोमेन, डिवाइस या ब्राउज़र विशिष्ट? मुझे क्लाइंट साइड डीबी में 600 एमबी वीडियो स्टोर करने की आवश्यकता है ताकि अलग-अलग डोमेन पर नेविगेट करने के कामकाज की जांच हो और फिर प्रत्येक पर 50 एमबी वीडियो स्टोर किया जा सके। –

+0

@ क्रिस्टोफरग्रिग यह डोमेन-विशिष्ट है, और लोगों ने डेटा को दाढ़ी देने के लिए हैक्स का उपयोग किया है। ब्राउज़र में आपको प्रति सबडोमेन संकेत मिलेगा ...? हालांकि, iOS 7 के रूप में यदि आप उन्हें उपयोग करने से पहले होमस्क्रीन पर पेज को बचाने के लिए मिलता है, मैं सीमाओं को हटा दिया गया है लगता है (WebSQL, वैसे भी के लिए) ... देना http://demo.agektmr.com/storage/ एक परीक्षण करने के लिए कोशिश करते हैं और हमें परिणाम :) – Rowan

-1

हू - एचटीएमएल 5 में डाइव कहता है कि no browser supported this as of February 2011, तो मुझे लगता है कि यह आईओएस 4.3 चीज हो सकता है? (आईओएस 4.3 मार्च 2011 में भेज दिया गया।)

मुझे त्वरित Google से इसका कोई संदर्भ नहीं मिल रहा है। ऐप्पल के अपने डेवलपर दस्तावेज़ का उल्लेख हो सकता है - मुझे यकीन नहीं है कि यह गैर-एसडीके ग्राहकों के लिए उपलब्ध है या नहीं।

0

यह ब्राउज़र विशिष्ट है। अधिकांश ने इसे 5 एमबी तक सेट किया है और कुछ इसे कहीं भी सेटिंग के माध्यम से बढ़ाने का विकल्प देते हैं। हालांकि सभी ब्राउज़रों ने यह पेशकश नहीं की है।

7

यह डेटाबेस Web SQL Database एपीआई का हिस्सा है, जो HTML5 का हिस्सा नहीं है। अपने डेटाबेस

function prepareDatabase(ready, error) { 
    return openDatabase('documents', '1.0', 'Offline document storage', 50*1024*1024, function (db) { 
     db.changeVersion('', '1.0', function (t) { 
      t.executeSql('CREATE TABLE docids (id, name)'); 
     }, error); 
    }); 
} 

एचटीएमएल 5 डॉक्टर पर Introducing Web SQL Databases कैसे काम करता है यह सब पर एक बहुत ही त्वरित ट्यूटोरियल है के निम्नलिखित आकार सेट का उपयोग करें।

+2

क्या वेब एसक्यूएल पहले से ही मर चुका है? आपके द्वारा लिंक किया गया पृष्ठ कहता है * "कृपया सावधान रहें कि 18 नवंबर तक डब्ल्यू 3 सी अब वेब एसक्यूएल डाटाबेस विनिर्देश पर सक्रिय रूप से काम नहीं कर रहा है" * – Pacerier

+2

यह उत्तर 2011 में पोस्ट किया गया था: पी, तो सच होने की उम्मीद न करें – ncubica

1

मैं सिर्फ iPad 2 (आईओएस 5.1.1) में मेरे ऑफ़लाइन एप्लिकेशन है कि हम कुछ भी एप्लिकेशन में स्थित विशिष्ट करने की ज़रूरत नहीं है के साथ परीक्षण किया अपेक्षा करें। उदाहरण के लिए, मेरे ऐप में लगभग 18 एमबी ऑफ़लाइन डेटा है। जब ब्राउजर ने यूआरएल मारा, तो ब्राउजर ने 25 एमबी तक आकार में वृद्धि का अनुरोध किया और मैंने इसे स्वीकार कर लिया और सब ठीक है। धन्यवाद