स्थायी जगह

लगातार सेव रखने से अहम डेटा को बाहर निकाले जाने से बचाने में मदद मिल सकती है. साथ ही, डेटा खोने की संभावना कम हो जाती है.

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

अच्छी बात यह है कि Chrome टीम की रिसर्च से पता चला है कि Chrome में डेटा को अपने-आप मिटाने की सुविधा बहुत कम ही होती है. उपयोगकर्ताओं के लिए, मैन्युअल तरीके से स्टोरेज खाली करना बहुत आम बात है. इसलिए, अगर कोई उपयोगकर्ता आपकी साइट पर नियमित रूप से आता है, तो इस बात की संभावना कम है कि आपका डेटा हटा दिया जाएगा. ब्राउज़र को अपना डेटा मिटाने से रोकने के लिए, अपनी साइट के पूरे स्टोरेज को स्थायी तौर पर मार्क करने का अनुरोध करें.

कई आधुनिक ब्राउज़र में स्थायी स्टोरेज की सुविधा उपलब्ध है.

ब्राउज़र सहायता

  • 55
  • 79
  • 57
  • 78 जीबी में से

सोर्स

निकालने के बारे में ज़्यादा जानने के लिए, वेब के लिए स्टोरेज देखें. इसमें आपको यह भी पता चलेगा कि आप कितना स्टोर कर सकते हैं और कोटा की सीमाओं को कैसे मैनेज कर सकते हैं.

देखें कि आपकी साइट का स्टोरेज, स्थायी के तौर पर मार्क किया गया है या नहीं

JavaScript का इस्तेमाल करके यह पता लगाया जा सकता है कि आपकी साइट के स्टोरेज को स्थायी के तौर पर मार्क किया गया है या नहीं. navigator.storage.persisted() को कॉल करने से ऐसा प्रॉमिस मिलता है जो बूलियन के साथ रिज़ॉल्व हो जाता है. इससे पता चलता है कि स्टोरेज को 'परसिस्टेंट' के तौर पर मार्क किया गया है या नहीं.

// Check if site's storage has been marked as persistent
if (navigator.storage && navigator.storage.persist) {
  const isPersisted = await navigator.storage.persisted();
  console.log(`Persisted storage granted: ${isPersisted}`);
}

मुझे स्थायी स्टोरेज के लिए कब अनुरोध करना चाहिए?

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

स्थायी स्टोरेज का अनुरोध करें

अपनी साइट के डेटा के लिए स्थायी स्टोरेज का अनुरोध करने के लिए, navigator.storage.persist() पर कॉल करें. यह ऐसा प्रॉमिस देता है जो बूलियन से रिज़ॉल्व होता है. इससे यह पता चलता है कि स्थायी स्टोरेज की अनुमति दी गई थी या नहीं.

// Request persistent storage for site
if (navigator.storage && navigator.storage.persist) {
  const isPersisted = await navigator.storage.persist();
  console.log(`Persisted storage granted: ${isPersisted}`);
}

अनुमति कैसे दी जाती है?

स्थायी स्टोरेज को अनुमति के तौर पर माना जाता है. स्थायी स्टोरेज की अनुमतियां देने या न देने के लिए, ब्राउज़र अलग-अलग चीज़ों का इस्तेमाल करते हैं.

Chrome और अन्य Chromium-आधारित ब्राउज़र

Chrome और Chromium पर आधारित ज़्यादातर ब्राउज़र, अनुमति के अनुरोध को अपने-आप मैनेज करते हैं. ये ब्राउज़र, उपयोगकर्ता को कोई सूचना नहीं दिखाते हैं. इसके बजाय, अगर किसी साइट को ज़रूरी माना जाता है, तो स्टोरेज की स्थायी अनुमति अपने-आप मिल जाती है. ऐसा न होने पर, उसे बिना किसी अनुमति के अस्वीकार कर दिया जाता है.

कोई साइट अहम है या नहीं, इसे तय करने के इन तरीकों में शामिल हैं:

  • साइट पर यूज़र ऐक्टिविटी का लेवल कितना है?
  • क्या साइट को इंस्टॉल या बुकमार्क किया गया है?
  • क्या साइट को सूचनाएं दिखाने की अनुमति दी गई है?

अगर अनुरोध को अस्वीकार कर दिया गया था, तो बाद में फिर से अनुरोध किया जा सकता है. उसी अनुभव के आधार पर इसका आकलन किया जाएगा.

Firefox

Firefox इस अनुमति का अनुरोध, उपयोगकर्ता को सौंप देता है. स्थायी स्टोरेज का अनुरोध किए जाने पर, यह उपयोगकर्ता को यूज़र इंटरफ़ेस (यूआई) पॉप-अप के साथ सूचना देता है, जिसमें यह पूछा जाता है कि क्या वे साइट को परसिस्टेंट स्टोरेज में डेटा सेव करने की अनुमति देंगे.

जब कोई साइट स्थायी स्टोरेज का अनुरोध करती है, तब Firefox से दिखाया जाने वाला पॉप-अप.
जब कोई साइट, स्थायी स्टोरेज का अनुरोध करती है, तब Firefox एक पॉप-अप दिखाता है.

स्थायी स्टोरेज की मदद से, किस स्टोरेज को सुरक्षित रखा जाता है?

अगर स्थायी स्टोरेज की अनुमति दी जाती है, तो ब्राउज़र यहां सेव किए गए डेटा को नहीं हटाएगा:

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

स्थायी स्टोरेज को बंद करने का तरीका

फ़िलहाल, ऐसा कोई प्रोग्रैम्ड तरीके से नहीं है जिससे ब्राउज़र को यह बताया जा सके कि अब आपको स्थायी स्टोरेज की ज़रूरत नहीं है.

नतीजा

Chrome टीम की रिसर्च से पता चलता है कि हालांकि मुमकिन है, लेकिन Chrome सेव किए गए डेटा को बहुत ही कम बार अपने-आप मिटाता है. ज़रूरी डेटा को सुरक्षित रखने के लिए जो क्लाउड में सेव नहीं हो सकता या डेटा को बहुत ज़्यादा नुकसान पहुंचा सकता है वही डेटा को सुरक्षित रखने का एक उपयोगी टूल है. इससे यह पक्का होता है कि डिवाइस में स्टोरेज कम होने पर ब्राउज़र आपका डेटा न हटा सके. याद रखें, स्थायी स्टोरेज का अनुरोध सिर्फ़ तब करें, जब उपयोगकर्ता की इच्छा हो.

धन्यवाद

इस लेख को पढ़ने के लिए, विक्टर कोस्टन और जो मेडली को खास धन्यवाद. इस लेख का मूल वर्शन पहली बार WebFundamentals पर दिखने वाले क्रिस विल्सन को धन्यवाद.

Unsplash पर Umberto की हीरो इमेज