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

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

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

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

टाइमलाइन

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

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

असुरक्षित कॉन्टेक्स्ट में इस्तेमाल करने पर, WebSQL के बंद होने की सूचना 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 से, AppCache की सुविधा डिफ़ॉल्ट रूप से Chrome में उपलब्ध नहीं होगी. जिन डेवलपर को Appकैश से माइग्रेट करने के लिए ज़्यादा समय चाहिए, वे अपने वेब ऐप्लिकेशन के लिए Appकैश की उपलब्धता बढ़ाने के लिए, "रिवर्स" ऑरिजिन ट्रायल के लिए साइन अप कर सकते हैं. ऑरिजिन ट्रायल, 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 और आपके टोकन के बीच एक नई लाइन होनी चाहिए.)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 वेबव्यू का इस्तेमाल करते हैं. साथ ही, वे AppCache का भी इस्तेमाल कर सकते हैं. हालांकि, वेबव्यू के लिए ऑरिजिन ट्रायल को चालू नहीं किया जा सकता. इस वजह से, Chrome वेबव्यू में ऑरिजिन ट्रायल के बिना AppCache काम करेगा. ऐसा तब तक होगा, जब तक इसे पूरी तरह से हटा नहीं दिया जाता. इसे Chrome 90 में हटा दिया जाएगा.

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

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

लेख

टूल

सहायता पाना

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

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

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

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