IndexedDB लेन-देन में दायरा तय करना

IndexedDB क्या है?

IndexedDB, ब्राउज़र में स्ट्रक्चर्ड डेटा की बड़ी मात्रा को स्टोर करने और इंडेक्स का इस्तेमाल करके इस डेटा पर बेहतर परफ़ॉर्मेंस की खोजों के लिए बनाया गया वेब स्टैंडर्ड है. दूसरे शब्दों में, IndexedDB एक ऑब्जेक्ट स्टोर है. यह किसी रिलेशनल डेटाबेस की तरह नहीं होता, जिसमें कलेक्शन की पंक्तियों और कॉलम वाली टेबल होती हैं. यह एक ज़रूरी और बुनियादी अंतर है, जो ऐप्लिकेशन को डिज़ाइन करने और बनाने के आपके तरीके पर असर डालता है (बुनियादी कॉन्सेप्ट के बारे में ज़्यादा जानें.

आइए जानते हैं कि नया क्या है?

मेरे दोस्तों को बदल देता है... अगर हम आसान सिंटैक्स बदलाव के साथ इन बदलावों को हैंडल नहीं कर पाते हैं, तो हमारे कुछ बदलाव हो सकते हैं.

अगर IndexedDB लेन-देन का दायरा किसी ऑब्जेक्ट स्टोर के दायरे में न हो, तो वर्शन 17 के बाद से Chrome अब गड़बड़ी दिखाएगा. डेटा पढ़ने और लिखने की प्रोसेस ट्रांज़ैक्शन में की जाती है. इसलिए, हमें डेटाबेस पर ट्रांज़ैक्शन बनाना होता है. इसके अलावा, हमें स्कोप (जैसे कि आपको किस ऑब्जेक्ट स्टोर को ऐक्सेस करना है) और ऐक्सेस का टाइप (रीड ओनली या राइट) तय करना होता है.

कोड में इसका क्या मतलब है? इस फ़ंक्शन का इस्तेमाल करने के लिए, खाली अरे को हमारे Database.transaction को पास करने के बजाय:

var transaction = db.transaction([], IDBTransaction.READ_ONLY);

आपको किसी विशेष ऑब्जेक्ट स्टोर या ऑब्जेक्ट स्टोर की सूची के दायरे में आना चाहिए:

// all stores (equivalent to what use to be marked as empty array. )
var transaction = db.transaction(db.objectStoreNames, IDBTransaction.READ_ONLY);

// multiple stores:
var transaction = db.transaction(['ObjectStoreName1', 'ObjectStoreName2'],
    IDBTransaction.READ_ONLY);

// single store - these are equivalent
var transaction = db.transaction(['ObjectStoreName'], IDBTransaction.READ_ONLY);
var transaction = db.transaction('ObjectStoreName', IDBTransaction.READ_ONLY);

ट्रांज़ैक्शन में सही दायरे और मोड का इस्तेमाल करके, डेटा को तेज़ी से ऐक्सेस किया जा सकता है. यहां कुछ सलाह दी गई है: दायरा तय करते समय, सिर्फ़ वे ऑब्जेक्ट स्टोर तय करें जिनकी आपको ज़रूरत है. इस तरह, ओवरलैप न होने वाले स्कोप वाले कई लेन-देन एक साथ चलाए जा सकते हैं. जब ज़रूरी हो, सिर्फ़ तब ही READ_WRITE ट्रांज़ैक्शन मोड तय करें. ओवरलैप होने वाले दायरों के साथ, एक साथ कई READ_ONLY लेन-देन किए जा सकते हैं. हालांकि, किसी ऑब्जेक्ट स्टोर के लिए READ_WRITE का सिर्फ़ एक लेन-देन किया जा सकता है.

अन्य सोर्स:

इसलिए अगली बार तक... वेब को आस-पास के क्षेत्रों में खोजना जारी रखें.