Appकैश मेमोरी को हटाने की तैयारी करना

Chrome 85 में, AppCache की सुविधा डिफ़ॉल्ट रूप से काम नहीं करती. ज़्यादातर डेवलपर को अब AppCache से माइग्रेट कर लेना चाहिए. उन्हें अब इंतज़ार नहीं करना चाहिए.

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

सर्विस वर्कर, मौजूदा ब्राउज़र में बड़े पैमाने पर काम करते हैं. ये ऑफ़लाइन अनुभव देने के लिए, AppCache का विकल्प देते हैं. माइग्रेशन की रणनीतियां देखें.

टाइमलाइन

Chrome के रिलीज़ शेड्यूल में हाल ही में हुए बदलावों की वजह से, इनमें से कुछ चरणों में लगने वाला समय अलग-अलग हो सकता है. हम इस टाइमलाइन को अपडेट रखने की कोशिश करेंगे. हालांकि, इस समय कृपया AppCache से जल्द से जल्द माइग्रेट करें. इसके लिए, किसी खास माइलस्टोन का इंतज़ार न करें.

"बंद की गई" सुविधा अब भी मौजूद है, लेकिन यह चेतावनी वाले मैसेज लॉग करती है. इससे इस सुविधा का इस्तेमाल न करने के लिए कहा जाता है. "हटा दी गई" सुविधा अब ब्राउज़र में मौजूद नहीं है.

असुरक्षित कॉन्टेक्स्ट में बंद होना Chrome 50 (अप्रैल 2016)
असुरक्षित कॉन्टेक्स्ट से हटाना Chrome 70 (अक्टूबर 2018)
सुरक्षित कॉन्टेक्स्ट में बंद होना Chrome 79 (दिसंबर 2019)
AppCache के स्कोप से जुड़ी पाबंदी Chrome 80 (फ़रवरी 2020)
"रिवर्स" ऑरिजिन ट्रायल शुरू होता है Chrome 84 (जुलाई 2020)
सुरक्षित कॉन्टेक्स्ट से हटाना. हालांकि, यह उन लोगों पर लागू नहीं होगा जिन्होंने ऑरिजिन ट्रायल के लिए ऑप्ट-इन किया है Chrome 85 (अगस्त 2020)
ऑरिजिन ट्रायल पूरा होने के बाद, सभी के लिए सुरक्षित कॉन्टेक्स्ट से पूरी तरह हटा दिया जाएगा 5 अक्टूबर, 2021 (Chrome 95 के आस-पास)

ऑरिजिन ट्रायल

टाइमलाइन में, हटाने के लिए दो आने वाले माइलस्टोन की सूची दी गई है. Chrome 85 से, Chrome में AppCache की सुविधा डिफ़ॉल्ट रूप से उपलब्ध नहीं होगी. जिन डेवलपर को AppCache से माइग्रेट करने के लिए ज़्यादा समय चाहिए वे "रिवर्स" ऑरिजिन ट्रायल के लिए साइन अप कर सकते हैं. इससे वे अपने वेब ऐप्लिकेशन के लिए AppCache की उपलब्धता बढ़ा सकते हैं. ऑरिजिन ट्रायल, Chrome 84 में शुरू होगा. Chrome 85 में डिफ़ॉल्ट रूप से हटाने से पहले, यह ट्रायल शुरू हो जाएगा. यह 5 अक्टूबर, 2021 तक चालू रहेगा. यह तारीख, Chrome 95 के आस-पास की है. इसके बाद, AppCache को सभी के लिए पूरी तरह से हटा दिया जाएगा. भले ही, उन्होंने ऑरिजिन ट्रायल के लिए साइन अप किया हो.

"रिवर्स" ऑरिजिन ट्रायल में हिस्सा लेने के लिए:

  1. अपने ऑरिजिन के लिए टोकन का अनुरोध करें.
  2. अपने एचटीएमएल पेजों में टोकन जोड़ें. ऐसा दो तरीकों से किया जा सकता है:
    • हर पेज के हेड में origin-trial <meta> टैग जोड़ें. उदाहरण के लिए: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • इसके अलावा, अपने सर्वर को इस तरह कॉन्फ़िगर करें कि वह Origin-Trial एचटीटीपी हेडर वाले जवाब दिखाए. इसके बाद, रिस्पॉन्स हेडर कुछ ऐसा दिखेगा: Origin-Trial: TOKEN_GOES_HERE
  3. अपने AppCache मेनिफ़ेस्ट में भी यही टोकन जोड़ें. इसके लिए, अपने मेनिफ़ेस्ट में एक नया फ़ील्ड जोड़ें. इसका फ़ॉर्मैट यह होना चाहिए:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(ORIGIN-TRIAL और आपके टोकन के बीच एक नई लाइन होनी चाहिए.)

एक से ज़्यादा जगहों पर टोकन की ज़रूरत क्यों होती है?

एक ही ऑरिजिन के लिए उपलब्ध कराए गए ट्रायल टोकन को इससे जोड़ा जाना चाहिए:

  • AppCache का इस्तेमाल करने वाले आपके सभी एचटीएमएल पेज.
  • ORIGIN-TRIAL मेनिफ़ेस्ट फ़ील्ड के ज़रिए, आपके सभी AppCache मेनिफ़ेस्ट.

अगर आपने पहले ओरिजिन ट्रायल में हिस्सा लिया था, तो हो सकता है कि आपने टोकन सिर्फ़ अपने एचटीएमएल पेजों में जोड़ा हो. AppCache "reverse" ओरिजिन ट्रायल खास है. इसमें आपको अपने हर AppCache मेनिफ़ेस्ट से एक टोकन जोड़ना होता है.

अपने एचटीएमएल पेजों में ऑरिजिन ट्रायल टोकन जोड़ने से, आपके वेब ऐप्लिकेशन में window.applicationCache इंटरफ़ेस चालू हो जाता है. जिन पेजों को टोकन से नहीं जोड़ा गया है वे window.applicationCache के तरीकों और इवेंट का इस्तेमाल नहीं कर पाएंगे. जिन पेजों पर टोकन नहीं है वे भी AppCache से रिसॉर्स लोड नहीं कर पाएंगे. Chrome 85 से, ये ऐसे काम करेंगे जैसे AppCache मौजूद ही नहीं है.

AppCache मेनिफ़ेस्ट में ऑरिजिन ट्रायल टोकन जोड़ने से पता चलता है कि हर मेनिफ़ेस्ट अब भी मान्य है. Chrome 85 से, ऐसे सभी मेनिफ़ेस्ट को गलत माना जाएगा जिनमें ORIGIN-TRIAL फ़ील्ड नहीं है. साथ ही, मेनिफ़ेस्ट में दिए गए नियमों को अनदेखा कर दिया जाएगा.

ऑरिजिन ट्रायल को डिप्लॉय करने का समय और लॉजिस्टिक्स

"रिवर्स" ओरिजिन ट्रायल आधिकारिक तौर पर Chrome 84 से शुरू होगा. हालांकि, आज ही ओरिजिन ट्रायल के लिए साइन अप किया जा सकता है. साथ ही, अपने एचटीएमएल और AppCache मेनिफ़ेस्ट में टोकन जोड़े जा सकते हैं. आपके वेब ऐप्लिकेशन की ऑडियंस धीरे-धीरे Chrome 84 पर अपग्रेड हो जाएगी. इसके बाद, आपके जोड़े गए सभी टोकन लागू हो जाएंगे.

AppCache मेनिफ़ेस्ट में टोकन जोड़ने के बाद, about://appcache-internals पर जाएं. इससे यह पुष्टि की जा सकेगी कि Chrome के आपके स्थानीय इंस्टेंस (वर्शन 84 या उसके बाद का वर्शन) ने, ऑरिजिन ट्रायल टोकन को आपके मेनिफ़ेस्ट की कैश मेमोरी में सेव की गई एंट्री से सही तरीके से जोड़ दिया है. अगर आपकी ऑरिजिन ट्रायल को पहचान लिया जाता है, तो आपको उस पेज पर Token Expires: Tue Apr 06 2021... वाला फ़ील्ड दिखेगा. यह फ़ील्ड, आपके मेनिफ़ेस्ट से जुड़ा होगा:

about://appcache-internals इंटरफ़ेस में, पहचाना गया टोकन दिखाया गया है.

वीडियो हटाने से पहले उसकी जांच करना

हमारा सुझाव है कि आप जल्द से जल्द AppCache से माइग्रेट कर लें. अगर आपको अपने वेब ऐप्लिकेशन पर AppCache को हटाने की सुविधा की जांच करनी है, तो about://flags/#app-cache फ़्लैग का इस्तेमाल करके, इसे हटाने की प्रोसेस को सिम्युलेट करें. यह फ़्लैग, Chrome 84 और उसके बाद के वर्शन में उपलब्ध है.

माइग्रेशन की रणनीतियां

सर्विस वर्कर, AppCache के ज़रिए ऑफ़लाइन अनुभव देने का एक विकल्प है. ये मौजूदा ब्राउज़र में काफ़ी हद तक काम करते हैं.

हमने एक पॉलीफ़िल उपलब्ध कराया है. यह AppCache की कुछ सुविधाओं को दोहराने के लिए, सर्विस वर्कर का इस्तेमाल करता है. हालांकि, यह पूरे AppCache इंटरफ़ेस को नहीं दोहराता है. खास तौर पर, यह window.applicationCache इंटरफ़ेस या उससे जुड़े AppCache इवेंट के लिए कोई विकल्प नहीं देता है.

ज़्यादा मुश्किल मामलों के लिए, Workbox जैसी लाइब्रेरी, आपके वेब ऐप्लिकेशन के लिए मॉडर्न सर्विस वर्कर बनाने का आसान तरीका उपलब्ध कराती हैं.

सर्विस वर्कर और AppCache, दोनों एक साथ काम नहीं करते

माइग्रेशन की रणनीति पर काम करते समय, कृपया ध्यान रखें कि Chrome, सर्विस वर्कर के कंट्रोल में लोड किए गए किसी भी पेज पर AppCache की सुविधा बंद कर देगा. दूसरे शब्दों में कहें, तो किसी पेज को कंट्रोल करने वाले सर्विस वर्कर को डिप्लॉय करने के बाद, उस पेज पर AppCache का इस्तेमाल नहीं किया जा सकता.

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

इसी तरह, अगर AppCache को हटाने से पहले कोई सर्विस वर्कर डिप्लॉय किया जाता है और बाद में आपको पता चलता है कि आपको AppCache के पिछले वर्शन पर वापस जाना है, तो आपको यह पक्का करना होगा कि आपने उस सर्विस वर्कर को अनरजिस्टर कर दिया हो. जब तक किसी पेज के लिए, स्कोप में कोई रजिस्टर किया गया सर्विस वर्कर मौजूद है, तब तक AppCache का इस्तेमाल नहीं किया जाएगा.

क्रॉस-प्लैटफ़ॉर्म स्टोरी

अगर आपको AppCache को हटाने के बारे में ब्राउज़र वेंडर की योजनाओं के बारे में ज़्यादा जानकारी चाहिए, तो हमारा सुझाव है कि आप उनसे संपर्क करें.

सभी प्लैटफ़ॉर्म पर Firefox

Firefox ने AppCache को वर्शन 44 (सितंबर 2015) में बंद कर दिया था. साथ ही, सितंबर 2019 से, इसके बीटा और Nightly वर्शन में इस सुविधा के लिए सहायता हटा दी गई है.

iOS और macOS पर Safari

Safari ने 2018 की शुरुआत में AppCache का इस्तेमाल बंद कर दिया था.

iOS पर Chrome

iOS के लिए Chrome एक खास ब्राउज़र है, क्योंकि यह अन्य प्लैटफ़ॉर्म पर Chrome के मुकाबले अलग ब्राउज़र इंजन का इस्तेमाल करता है: WKWebView. फ़िलहाल, WKWebView का इस्तेमाल करने वाले iOS ऐप्लिकेशन में सर्विस वर्कर काम नहीं करते. साथ ही, Chrome से AppCache हटाने की सूचना में, iOS के लिए Chrome पर AppCache की उपलब्धता के बारे में जानकारी नहीं दी गई है. अगर आपको पता है कि आपके वेब ऐप्लिकेशन का इस्तेमाल करने वाले लोगों में से ज़्यादातर लोग, Chrome for iOS का इस्तेमाल करते हैं, तो कृपया इस बात का ध्यान रखें.

Android वेबव्यू

Android ऐप्लिकेशन के कुछ डेवलपर, वेब कॉन्टेंट दिखाने के लिए Chrome WebView का इस्तेमाल करते हैं. वे AppCache का भी इस्तेमाल कर सकते हैं. हालांकि, किसी वेबव्यू के लिए ऑरिजिन ट्रायल को चालू नहीं किया जा सकता. इसलिए, Chrome WebView, ऑरिजिन ट्रायल के बिना AppCache के साथ काम करेगा. ऐसा तब तक होगा, जब तक इसे पूरी तरह से हटा नहीं दिया जाता. इसे Chrome 90 में हटाया जा सकता है.

ज़्यादा जानें

यहां उन डेवलपर के लिए कुछ संसाधन दिए गए हैं जो AppCache से सर्विस वर्कर पर माइग्रेट कर रहे हैं.

लेख

टूल

सहायता पाना

अगर आपको किसी टूल का इस्तेमाल करते समय कोई समस्या आती है, तो उसकी GitHub रिपॉज़िटरी में जाकर समस्या की शिकायत करें.

AppCache से माइग्रेट करने के बारे में सामान्य सवाल पूछने के लिए, Stack Overflow पर जाएं. इसके लिए, html5-appcache टैग का इस्तेमाल करें.

अगर आपको Chrome से AppCache हटाने से जुड़ा कोई बग मिलता है, तो कृपया Chromium issue tracker का इस्तेमाल करके, उसकी शिकायत करें.

स्मिथसोनियन इंस्टिट्यूशन आर्काइव्स, Acc. 11-007, बॉक्स 020, इमेज नंबर MNH-4477.