2010-04-30 23 views
74

एचटीएमएल 5 के स्थानीय स्टोरेज डेटाबेस आमतौर पर आकार-सीमित होते हैं - मानक आकार प्रति डोमेन 5 या 10 एमबी होते हैं। क्या इन सीमाओं को सबडोमेन द्वारा अवरुद्ध किया जा सकता है (उदा। Example.com, hack1.example.com और hack2.example.com सभी के पास अपने 5 एमबी डेटाबेस हैं)? और क्या मानक में कुछ भी है जो निर्दिष्ट करता है कि क्या माता-पिता डोमेन अपने बच्चों के डेटाबेस तक पहुंच सकते हैं? मुझे कुछ भी नहीं मिल रहा है, और मैं इसे किसी भी तरह से करने के लिए तर्क देख सकता हूं, लेकिन ऐसा लगता है कि कुछ मानक मॉडल होना चाहिए।सबडोमेन के लिए एचटीएमएल 5 स्थानीय स्टोरेज आकार सीमा

+1

मैं एक कार्यक्रम है जहाँ से अभी काम कर रहा हूँ भंडारण स्थान उपयोग कोड के 50MB प्राप्त करने के लिए हम स्थानीय स्तर पर सभी पाठ को पूरी तरह से स्टोर करने की कोशिश कर रहे हैं। यह शानदार होगा अगर आप वर्तमान 5 एमबी सीमा के बारे में यह जानकारी कहां प्राप्त कर सकते हैं, तो कुछ लिंक जोड़ सकते हैं। इससे मुझे विकल्प बेहतर समझने में मदद मिलेगी। धन्यवाद – JeroenEijkhof

+6

वेबकिट-आधारित ब्राउज़र भंडारण के लिए यूटीएफ -16 का उपयोग करते हैं जो इसे 2.5 एमबी सीमा तक बचाता है। – rxgx

+8

नोट, जून 2011 आरएफसी का कहना है कि "उपयोगकर्ता एजेंटों को उत्पत्ति अन्य संबद्ध साइटों के तहत डेटा संग्रहीत साइटों के खिलाफ सावधानी बरतनी चाहिए, उदाहरण के लिए a1.example.com, a2.example.com, a3.example.com में सीमा तक संग्रहीत करना, आदि, मुख्य example.com भंडारण सीमा को बाधित। " तो भविष्य में काम करने के लिए जारी रखने वाले हैक पर भरोसा न करें। (http://dev.w3.org/html5/webstorage/) –

उत्तर

51

http://dev.w3.org/html5/webstorage/#disk-space से

एक मूल प्रति पाँच मेगाबाइट के ज्यादातर मनमाने ढंग से सीमा की सिफारिश की है। कार्यान्वयन प्रतिक्रिया का स्वागत है और भविष्य में इस सुझाव को अद्यतन करने के लिए उपयोग किया जाएगा।

यह भी कहा गया है कि:

उपयोगकर्ता एजेंट मूल के तहत डेटा भंडारण अन्य संबद्ध साइटों, जैसे साइटों से बचाव करना चाहिए a1.example.com, a2.example.com, a3.example.com, आदि में सीमा तक संग्रहीत करना, मुख्य example.com संग्रहण सीमा को बाधित करना।

+5

यह वास्तव में सबडोमेन के बारे में सवाल का जवाब नहीं देता है। –

+15

@ जोर्नजेफेफर, spec का * इरादा * सबडोमेन का उपयोग रोकने से रोकने के लिए है। –

+4

यह ध्यान रखना दिलचस्प है कि spec में चेतावनी के बावजूद, जाहिर है केवल फ़ायरफ़ॉक्स ने सुझाए गए रोकथाम को लागू किया। अपनी डिस्क को भरने/अपने ब्राउज़र को क्रैश करने के मजेदार तरीके के लिए इस प्रोजेक्ट को देखें: http://feross.org/fill-disk/ –

9

मैंने इस प्रश्न को याद किया जब मैंने "Is 5MB the de facto limit for W3C Web Storage?" पूछा, लेकिन मुझे मूल रूप से वही जवाब मिला। यदि आप अधिक जानकारी चाहते हैं, तो मैंने अपने प्रश्न में कुछ ब्राउज़र विशिष्ट सीमाओं से लिंक किया था।

14

यहाँ डेस्कटॉप के बहुत सारे और मोबाइल ब्राउज़रों के साथ एक सुंदर विस्तृत परीक्षा परिणाम को कवर किया गया है: http://dev-test.nemikor.com/web-storage/support-test/

कौन इस बग रिपोर्ट की पुष्टि करता है: http://code.google.com/p/chromium/issues/detail?id=58985#c15

आप केवल 2.5MB, नहीं 5MB, स्ट्रिंग के आधार पर पर भरोसा कर सकते लंबाई जो आप स्टोर कर सकते हैं।

+0

ग्रेट डॉक! धन्यवाद! – neoswf

5

एक बेहतर समाधान का उपयोग करने के लिए है [ऑफ़लाइन संग्रहण के लिए एचटीएमएल 5 IndexedDB।]1

यह पुराने वेब SQL के लिए प्रतिस्थापन (जो b/c इसके लिए ऑफ़लाइन है misnamed किया जा रहा है की तरह लग रहा भंडारण) है: इंडेक्स डीबी, जो ऑफ़लाइन स्टोरेज की अनुमति देता है और अभी भी समर्थित है:

इंडेक्सड डीबी एचटीएमएल 5 में नया है। वेब डेटाबेस होस्ट किए जाते हैं और उपयोगकर्ता के ब्राउज़र के अंदर बने रहते हैं। डेवलपर्स को समृद्ध क्वेरी क्षमताओं के साथ अनुप्रयोग बनाने की अनुमति देकर यह अनुमान लगाया गया है कि वेब अनुप्रयोगों की एक नई नस्ल उभर जाएगी जिसमें ऑनलाइन काम करने की क्षमता होगी और ऑफ-लाइन

अधिक जानकारी और एक test-app: http://ido-green.appspot.com/WebSQL-IndexedDB-example/jqm_indexedDB.html

+0

अब मोबाइल पर कोई इंडेक्स डीडी समर्थन नहीं है (आईओएस 7 में आगामी हो सकता है)। इसलिए जब तक इंडेक्सड डीबी मोबाइल पर बेहतर समर्थित नहीं है तब तक एक स्थिरता एपीआई रैपिंग वेबस्क्लुएल और इंडेक्सड डीबी बनाने के लिए बेहतर हो सकता है http://caniuse.com/#search=indexeddb – oligofren

+0

यह एक टिप्पणी होनी चाहिए, क्योंकि यह सवाल का जवाब नहीं देती है। –

+1

मुझे वास्तव में लगता है कि यह प्रारंभिक प्रश्न पूछने वाले किसी व्यक्ति के लिए सर्वोत्तम संभव सलाह प्रदान करने की संभावना है। अलग-अलग, एक सभ्य पॉलीफिल लाइब्रेरी मौजूद है जो पुराने मोबाइल ब्राउज़र के लिए WebSQL के शीर्ष पर अनुक्रमित डीबी लागू करती है। –

2

नीचे

// 1. paste this line in your code 
!function(){function e(t,o){return n?void(n.transaction("s").objectStore("s").get(t).onsuccess=function(e){var t=e.target.result&&e.target.result.v||null;o(t)}):void setTimeout(function(){e(t,o)},100)}var t=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;if(!t)return void console.error("indexDB not supported");var n,o={k:"",v:""},r=t.open("d2",1);r.onsuccess=function(e){n=this.result},r.onerror=function(e){console.error("indexedDB request error"),console.log(e)},r.onupgradeneeded=function(e){n=null;var t=e.target.result.createObjectStore("s",{keyPath:"k"});t.transaction.oncomplete=function(e){n=e.target.db}},window.ldb={get:e,set:function(e,t){o.k=e,o.v=t,n.transaction("s","readwrite").objectStore("s").put(o)}}}(); 

// 2. Setting values 
ldb.set('nameGoesHere', 'value goes here'); 

// 3. Getting values - callback is required because the data is being retrieved asynchronously: 
ldb.get('nameGoesHere', function (value) { 
    console.log('And the value is', value); 
}); 

स्रोत https://github.com/DVLP/localStorageDB

संबंधित मुद्दे