स्थायी जगह

लगातार स्टोरेज की सुविधा से, अहम डेटा को खाली होने से बचाया जा सकता है और डेटा के खोने की संभावना कम की जा सकती है.

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

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

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

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

  • Chrome: 55. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • एज: 79. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • Firefox: 57. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • Safari: 15.2. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

सोर्स

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

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

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 स्टोरेज (लोकल स्टोरेज)
  • File System API (ब्राउज़र से मिला और सैंडबॉक्स किया गया फ़ाइल सिस्टम)
  • IndexedDB
  • सर्विस वर्कर
  • ऐप्लिकेशन की कैश मेमोरी (अब सेवा में नहीं है, इसका इस्तेमाल नहीं किया जाना चाहिए)
  • WebSQL (अब सेवा में नहीं है, इसका इस्तेमाल नहीं किया जाना चाहिए)

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

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

नतीजा

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

धन्यवाद

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

Unस्प्लैश पर Umberto की हीरो इमेज