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

Chrome 85, डिफ़ॉल्ट रूप से Appcache के लिए काम नहीं करता है. ज़्यादातर डेवलपर को अभी Appकैश से माइग्रेट कर लेना चाहिए और उन्हें ज़्यादा इंतज़ार नहीं करना चाहिए.

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

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

टाइमलाइन

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

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

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

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

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

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

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

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

यहां एम्बेड किया गया एक सैंपल प्रोजेक्ट देखा जा सकता है. इसमें, index.html और manifest.appcache, दोनों फ़ाइलों में सही ऑरिजिन ट्रायल टोकन जोड़ने के बारे में बताया गया है.

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

एक ही ऑरिजिन ट्रायल टोकन इनसे जुड़ा होना चाहिए:

  • आपके वे सभी एचटीएमएल पेज जो Appकैश का इस्तेमाल करते हैं.
  • ORIGIN-TRIAL मेनिफ़ेस्ट फ़ील्ड के ज़रिए आपके सभी Appकैश मेनिफ़ेस्ट.

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

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

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

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

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

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

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

हटाने से पहले जांच करना

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

माइग्रेशन से जुड़ी रणनीतियां

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

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

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

सर्विस वर्कर और Appcache सुविधा म्यूचुअली एक्सक्लूसिव होते हैं

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

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

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

अलग-अलग प्लैटफ़ॉर्म की कहानी

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

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

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

iOS और macOS पर Safari

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

iOS पर Chrome

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

Android वेबव्यू

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

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

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

लेख

टूल

सहायता पाना

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

आप html5-appcache टैग का इस्तेमाल करके, Stack Overflow पर Appकैश से माइग्रेट करने के बारे में सामान्य सवाल पूछ सकते हैं.

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

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