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

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

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

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

टाइमलाइन

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

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

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

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

  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, दोनों फ़ाइलों में सही ऑरिजिन ट्रायल टोकन जोड़ने की जानकारी दी गई है.

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

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

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

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

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

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

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

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

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

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

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

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

डेटा को दूसरी जगह भेजने से जुड़ी रणनीतियां

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

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

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

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

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

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

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

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

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

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

Firefox ने रिलीज़ 44 (सितंबर 2015) में App cache को बंद कर दिया था. साथ ही, सितंबर 2019 से, इसके बीटा और नाइटली बिल्ड में इसके लिए सहायता हटा दी गई है.

iOS और macOS पर Safari

साल 2018 की शुरुआत में, Safari का Appकैश, बंद हो गया था.

iOS पर Chrome

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

Android वेबव्यू

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

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

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

लेख

टूल

सहायता पाना

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

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

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

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