2013-08-14 10 views
5

में वेबस्क्लु कोटा के आकार को बढ़ाएं सामान्य एंड्रॉइड वेब ऐप में वेबस्क्लुएल डेटाबेस के लिए अधिकतम आकार सामान्यतः 8 एमबी के आसपास होता है। एक हाइब्रिड वेब ऐप में मैं बना रहा हूं कि मैं इस सीमा को बढ़ाना चाहता हूं। मुझसे यह कैसे होगा?वेबव्यू

ऐसा लगता है WebStorage इसके साथ कुछ करने के लिए हो सकता है, लेकिन केवल विधि मैं वहाँ देख सकते हैं कि आकार, setQuotaForOrigin, स्थापित करने के लिए लगता है चिह्नित है पदावनत

नमूना कोड (जो पदावनत नहीं है) का स्वागत है :)

+0

मैं सटीक विपरीत समाधान की तलाश में हूं। आईओएस 7 में एक "बग" है जो आकार सीमा को पार करने का प्रयास करते समय सुरक्षा अपवाद फेंकता है। इसलिए मुझे इससे बचने के लिए मेरे डीबी को कम करना होगा। जो भी मुझे उस संबंध में मिलेगा मैं पोस्ट करूंगा। – Chepech

उत्तर

5

किसी वेब ऐप के लिए कोटा हाइब्रिड ऐप से भिन्न होता है (जैसे किसी दृश्य में चल रहा है)। भले ही, अपने android.app.Activity सबक्लास में निम्नलिखित को लागू करके आप कोटा को तब तक दोगुना कर देंगे जब तक कि यह लगभग 48 एमबी तक बंद न हो जाए।

@Override 
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { 
    quotaUpdater.updateQuota(estimatedSize * 2); 
} 

उपयोगकर्ता ऐसा होने पर बातचीत करने के लिए नहीं कहा जाएगा।

1

आप how to increase quota limit पर यह अन्य प्रश्न को देखने के लिए चाहते हो सकता है।

ऐसा लगता है कि आकार बदलने की तरह ही उन उपयोगकर्ताओं के लिए एक समस्या है जो पहले से ही एक स्थानीय डीबी बनाया गया है, ऐसा इसलिए है क्योंकि upgrade scripts for versioning चलाते समय डीबी के आकार को बदलने का कोई तरीका नहीं है। जैसा कि कहा गया, तो आप सिर्फ केवल (जावास्क्रिप्ट में कोड) प्रारंभ लिपि में आकार बदलने की जरूरत:

var size = 10 * 1024 * 1024; // changed from 5 to 10MB 
var db = openDatabase("oversized_db", "v1.1", "Ten MB DB", size); 

को ध्यान में रखें कि यह केवल नए उपयोगकर्ताओं को प्रभावित करेगा। सभी उपयोगकर्ताओं ने पहले एक अलग आकार के साथ डीबी बनाया है, उन्हें अपने कैश को साफ़ करने की आवश्यकता है (आपके पास वेबव्यू पर कैश का नियंत्रण है, इसलिए यह बुरा नहीं है) लेकिन सभी पिछले डेटा खो जाएंगे (जब तक कि आप इसे मैन्युअल रूप से नए डीबी में माइग्रेट नहीं करते मूल कोड के साथ)। मेरे मामले में मुझे ऐसा करना है लेकिन आकार घटाना है। वह इस मुद्दे का ख्याल रखेगा।

उम्मीद है कि इससे मदद मिलती है।

+0

यह कुछ और है। यह एंड्रॉइड ओएस द्वारा कोटा सेट को प्रभावित नहीं करेगा। यह केवल मौजूदा डेटाबेस का आकार सेट करता है। और मुझे अभी तक देखना है कि वास्तव में _anything_ करते हैं। सभी परीक्षणों में मैंने यह आकार केवल बालोनी किया है। मैं 10 बाइट का आकार निर्धारित कर सकता हूं और मैं इसे अभी भी कोटा तक भर सकता हूं। मैं अब और जानकारी के साथ एक जवाब जोड़ दूंगा। – oligofren

+0

इस तरह यह एक नियमित वेब ऐप के लिए किया गया है। मुझे यकीन नहीं है कि आप इसे कैसे कर रहे हैं। लेकिन ब्राउज़र द्वारा सीमाएं सामान्य रूप से सेट की जाती हैं, यह एक सेट आकार का डीबी बनाने का प्रयास करने का तरीका है। – Chepech

+0

मुझे पता है कि नियमित वेब ऐप के लिए यह तरीका है। मैं बस इतना कह रहा हूं कि आकार तर्क _nothing_ करता है। मुझे अपेक्षित चीज करना चाहिए - आकार निर्धारित करें, लेकिन अधिकांश ब्राउज़रों द्वारा इसे अनदेखा किया जा रहा है। असली अधिकतम आकार ब्राउज़र/दृश्य द्वारा सेट किया गया है। – oligofren