IndexedDB बड़े और व्यवस्थित डेटा के लिए ब्राउज़र का बिल्ट-इन स्टोरेज सिस्टम है। जानें कि यह क्या है, कैसे काम करता है और वेबसाइट लोकल या सेशन स्टोरेज की जगह इसे कब इस्तेमाल करती हैं।
क्या आपने कभी ऐसा वेब ऐप इस्तेमाल किया है जो इंटरनेट बंद होने पर भी चलता रहा? या ऐसा जो आपके फ़ोन में इंस्टॉल नेटिव ऐप जितना तेज़ लगा, जहां बहुत सारा डेटा तुरंत लोड हो गया? इन अनुभवों के पीछे आमतौर पर वह चीज़ होती है जो अब तक बताए गए बुनियादी ब्राउज़र स्टोरेज टूल से कहीं ज़्यादा सक्षम है। वह चीज़ है IndexedDB।
IndexedDB सबसे सक्षम ब्राउज़र स्टोरेज टाइप है, और यह उस स्तर से ऊपर है जिसे संभालने के लिए लोकल स्टोरेज और सेशन स्टोरेज बने थे। ज़्यादातर बिज़नेस वेबसाइट मालिक इससे कभी सीधे नहीं जुड़ेंगे, लेकिन इसे समझने से आपको पूरी तस्वीर मिलती है कि ब्राउज़र क्या-क्या सेव कर सकते हैं।
IndexedDB क्या है?
IndexedDB ब्राउज़र में बना एक लो-लेवल डेटाबेस है। लोकल स्टोरेज और सेशन स्टोरेज के उलट, जो टेक्स्ट के सादे key-value जोड़े रखते हैं, IndexedDB व्यवस्थित डेटा रख सकता है: ऑब्जेक्ट, ऐरे, फ़ाइलें और बाइनरी डेटा। इसमें सर्च और इंडेक्स किया जा सकता है, और यह दूसरे ब्राउज़र स्टोरेज टाइप से कहीं ज़्यादा डेटा रख सकता है।
नाम से ही अंदाज़ा मिलता है कि यह कैसे काम करता है। यह इंडेक्स इस्तेमाल करता है, जो लुकअप टेबल की तरह हैं, ताकि सब कुछ खंगाले बिना सेव किए रिकॉर्ड जल्दी मिल जाएं। इसी वजह से ब्राउज़र के अंदर ही बड़ी मात्रा में व्यवस्थित जानकारी रखना और निकालना व्यावहारिक हो जाता है।
IndexedDB बाकी ब्राउज़र स्टोरेज से कैसे अलग है?
लोकल स्टोरेज छोटे टेक्स्ट वैल्यू रखता है और उन्हें अनिश्चित समय तक रखता है। सेशन स्टोरेज वही करता है, लेकिन सिर्फ़ मौजूदा टैब सेशन के लिए। दोनों सरल और सीमित हैं। IndexedDB दायरे और क्षमता में बुनियादी रूप से अलग है।
स्टोरेज क्षमता मुख्य फ़र्कों में से एक है। जहां लोकल स्टोरेज आमतौर पर 5 से 10 मेगाबाइट तक सीमित होता है, वहीं IndexedDB ब्राउज़र और डिवाइस के हिसाब से सैकड़ों मेगाबाइट या ज़्यादा रख सकता है। यह जटिल डेटा ढांचे भी सीधे रखता है, सिर्फ़ सादा टेक्स्ट नहीं। और यह क्वेरी सपोर्ट करता है, यानी वेबसाइट सेव किए रिकॉर्ड में सर्च और फ़िल्टर कर सकती है, सिर्फ़ सटीक key से कोई वैल्यू निकालने की जगह।
वेबसाइट IndexedDB किसके लिए इस्तेमाल करती हैं?
ऑफ़लाइन चलना
जिन वेब ऐप को इंटरनेट कनेक्शन के बिना चलना होता है, वे डेटा डिवाइस पर लोकली रखने के लिए IndexedDB इस्तेमाल करते हैं। नोट लेने वाला ऐप, प्रोजेक्ट मैनेजमेंट टूल या ईमेल क्लाइंट रिकॉर्ड IndexedDB में सेव कर सकता है, ताकि विज़िटर ऑफ़लाइन होने पर भी कंटेंट पढ़, बना और बदल सके। कनेक्शन वापस आते ही बदलाव सर्वर से सिंक हो जाते हैं।
ब्राउज़र में बड़े डेटासेट
जो ऐप्लिकेशन बहुत सारे डेटा के साथ काम करते हैं, जैसे मैप, जटिल फ़िल्टर या बड़े प्रोडक्ट कैटलॉग, वे उस डेटा को लोकली कैश करने के लिए IndexedDB इस्तेमाल कर सकते हैं। इससे ऐप को सर्वर से डेटा कम बार लाना पड़ता है और यूज़र के लिए अनुभव काफ़ी तेज़ हो जाता है।
फ़ाइल स्टोरेज
IndexedDB ब्राउज़र में सीधे फ़ाइलें रख सकता है। यह उन ऐप के लिए काम का है जहां यूज़र ऐसा कंटेंट अपलोड करते या बनाते हैं जो सर्वर को भेजे जाने से पहले कई सेशन में उपलब्ध रहना चाहिए।
क्या ज़्यादातर वेबसाइट IndexedDB इस्तेमाल करती हैं?
नहीं। IndexedDB जटिल वेब ऐप्लिकेशन इस्तेमाल करते हैं, आम बिज़नेस वेबसाइट नहीं। मार्केटिंग साइट, सर्विस वेबसाइट, ऑनलाइन स्टोर और कंटेंट पर चलने वाली ज़्यादातर साइट को इसकी ज़रूरत नहीं होती। उनकी स्टोरेज की ज़रूरतें कुकीज़, लोकल स्टोरेज और सेशन स्टोरेज से अच्छी तरह पूरी हो जाती हैं।
आपकी अपनी वेबसाइट के लिए, जिस प्लेटफ़ॉर्म पर आप बनाते हैं, वही सारे स्टोरेज फ़ैसले संभालता है। WEMASY का वेबसाइट बिल्डर हर फ़ीचर के लिए सही स्टोरेज टाइप अपने आप इस्तेमाल करता है। सभी ब्राउज़र स्टोरेज टाइप की साथ-साथ तुलना और वे कैसे जुड़े हैं, यह देखने के लिए पढ़ें ब्राउज़र स्टोरेज के प्रकार।
अक्सर पूछे जाने वाले सवाल
क्या IndexedDB असली डेटाबेस है?
यह इस मायने में डेटाबेस है कि यह व्यवस्थित डेटा रखता है, इंडेक्सिंग सपोर्ट करता है और क्वेरी की इजाज़त देता है। लेकिन यह सर्वर-साइड डेटाबेस से बहुत अलग है। यह पूरी तरह ब्राउज़र में विज़िटर के डिवाइस पर चलता है, किसी रिमोट सर्वर पर नहीं। यह क्लाइंट-साइड स्टोरेज के लिए बना है, उस तरह के साझा, कई यूज़र वाले डेटा मैनेजमेंट के लिए नहीं जो सर्वर डेटाबेस संभालते हैं। WEMASY के वेबसाइट बिल्डर से आप यह सब सीधे अपनी वेबसाइट पर सेट कर सकते हैं।
IndexedDB कितना डेटा रख सकता है?
लोकल या सेशन स्टोरेज से बहुत ज़्यादा। ज़्यादातर ब्राउज़र IndexedDB को उपलब्ध डिस्क स्पेस का काफ़ी बड़ा हिस्सा इस्तेमाल करने देते हैं, अक्सर सैकड़ों मेगाबाइट या ज़्यादा। अगर कोई वेबसाइट बहुत बड़ी मात्रा रखने की कोशिश करे, तो ब्राउज़र यूज़र से इजाज़त मांग सकता है। सटीक सीमा ब्राउज़र के हिसाब से बदलती है और इस पर भी निर्भर हो सकती है कि डिवाइस पर कितनी खाली जगह है।
क्या ब्राउज़र बंद होने के बाद भी IndexedDB का डेटा रहता है?
हां। IndexedDB का डेटा डिफ़ॉल्ट रूप से स्थायी होता है, लोकल स्टोरेज की तरह। वह तब तक ब्राउज़र में रहता है जब तक यूज़र अपना ब्राउज़र डेटा साफ़ न करे या वेबसाइट उसे हटा न दे। यही स्थायित्व IndexedDB को ऑफ़लाइन चलने वाले ऐप्लिकेशन के लिए सही बनाता है, जहां डेटा को सेशन के बीच बचा रहना होता है।
क्या IndexedDB सुरक्षित है?
IndexedDB हर वेबसाइट के लिए अलग रहता है, इसलिए एक वेबसाइट दूसरी साइट का डेटा नहीं देख सकती। लेकिन बाकी ब्राउज़र स्टोरेज टाइप की तरह, पेज पर चलने वाली स्क्रिप्ट इस तक पहुंच सकती हैं। पासवर्ड, पेमेंट की जानकारी और निजी जानकारी जैसा संवेदनशील डेटा IndexedDB में कभी नहीं रखना चाहिए। यह ऐप्लिकेशन डेटा और बड़े कंटेंट के लिए ठीक है, लेकिन सुरक्षित सर्वर-साइड स्टोरेज की जगह नहीं लेना चाहिए।
क्या विज़िटर अपना IndexedDB डेटा साफ़ कर सकते हैं?
हां। ब्राउज़र सेटिंग से ब्राउज़र डेटा साफ़ करने पर IndexedDB कुकीज़, लोकल स्टोरेज और कैश के साथ हट जाता है। विज़िटर इसे डेवलपर टूल से भी साफ़ कर सकते हैं। जो ऐप्लिकेशन ज़रूरी डेटा के लिए IndexedDB पर निर्भर हैं, उन्हें इसका ध्यान रखना चाहिए और कनेक्शन मिलने पर डेटा सर्वर से सिंक करना चाहिए, ताकि लोकल डेटा कभी इकलौती कॉपी न हो।
क्या वेबसाइट बनाने के लिए मुझे IndexedDB के बारे में जानना ज़रूरी है?
नहीं। IndexedDB जटिल वेब ऐप्लिकेशन बनाने वाले डेवलपर का टूल है। प्लेटफ़ॉर्म इस्तेमाल करने वाले वेबसाइट मालिक के तौर पर आप इससे कभी सीधे नहीं जुड़ेंगे। आपका वेबसाइट बिल्डर ब्राउज़र स्टोरेज के फ़ैसले पर्दे के पीछे संभालता है। IndexedDB को समझना यह पूरी तस्वीर बनाने में काम का है कि ब्राउज़र कैसे काम करते हैं, लेकिन आप अपनी वेबसाइट रोज़ कैसे चलाते या संभालते हैं, इस पर इसका कोई व्यावहारिक असर नहीं है।