Chrome 85 में, AppCache की सुविधा डिफ़ॉल्ट रूप से बंद हो जाती है. ज़्यादातर डेवलपर को अब AppCache से माइग्रेट कर लेना चाहिए और इंतज़ार नहीं करना चाहिए.
पिछली सूचनाओं के बाद, Chrome और Chromium पर काम करने वाले दूसरे ब्राउज़र से AppCache की सुविधा हटा दी जाएगी. हमारा सुझाव है कि डेवलपर अब और इंतज़ार किए बिना, AppCache से माइग्रेट कर लें.
सर्विस वर्कर, जो फ़िलहाल के ब्राउज़र में बड़े पैमाने पर काम करते हैं, वे AppCache की तरह ऑफ़लाइन अनुभव देने का विकल्प देते हैं. माइग्रेशन की रणनीतियां देखें.
टाइमलाइन
Chrome के रिलीज़ शेड्यूल में हुए हाल ही के बदलावों का मतलब है कि इनमें से कुछ चरणों में लगने वाला समय अलग-अलग हो सकता है. हम इस टाइमलाइन को अप-टू-डेट रखने की कोशिश करेंगे. हालांकि, इस समय किसी खास माइलस्टोन का इंतज़ार करने के बजाय, कृपया जल्द से जल्द AppCache से माइग्रेट कर लें.
"अब काम नहीं करती" सुविधा अब भी मौजूद है. हालांकि, इसका इस्तेमाल करने से रोकने के लिए, चेतावनी वाले मैसेज लॉग किए जाते हैं. "निकाला गया" सुविधा अब ब्राउज़र में मौजूद नहीं है.
असुरक्षित कॉन्टेक्स्ट में काम न करना | 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 से, AppCache की सुविधा डिफ़ॉल्ट रूप से Chrome में उपलब्ध नहीं होगी. जिन डेवलपर को Appकैश से माइग्रेट करने के लिए ज़्यादा समय चाहिए, वे अपने वेब ऐप्लिकेशन के लिए Appकैश की उपलब्धता बढ़ाने के लिए, "रिवर्स" ऑरिजिन ट्रायल के लिए साइन अप कर सकते हैं. ऑरिजिन ट्रायल, Chrome 84 (Chrome 85 में डिफ़ॉल्ट रूप से हटाए जाने से पहले) में शुरू होगा और 5 अक्टूबर, 2021 (आम तौर पर, Chrome 95) तक चालू रहेगा. इसके बाद, AppCache को सभी के लिए पूरी तरह हटा दिया जाएगा. भले ही, उन्होंने ऑरिजिन ट्रायल के लिए साइन अप किया हो.
"रिवर्स" ऑरिजिन ट्रायल में हिस्सा लेने के लिए:
- अपने ऑरिजिन के लिए टोकन का अनुरोध करें.
- अपने एचटीएमएल पेजों में टोकन जोड़ें. ऐसा करने के दो तरीके हैं:
- हर पेज के हेडर में
origin-trial
<meta>
टैग जोड़ें. उदाहरण के लिए:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- इसके अलावा, अपने सर्वर को इस तरह कॉन्फ़िगर करें कि वह
Origin-Trial
एचटीटीपी हेडर वाले रिस्पॉन्स दिखाए. इससे मिलने वाला रिस्पॉन्स हेडर कुछ ऐसा दिखेगा:Origin-Trial: TOKEN_GOES_HERE
- हर पेज के हेडर में
- अपने AppCache मेनिफ़ेस्ट में वही टोकन जोड़ें. ऐसा करने के लिए, अपने मेनिफ़ेस्ट में एक नया फ़ील्ड बनाएं. इस फ़ील्ड का फ़ॉर्मैट इस तरह होना चाहिए:
ORIGIN-TRIAL:
TOKEN_GOES_HERE
(ORIGIN-TRIAL
और आपके टोकन के बीच एक नई लाइन होनी चाहिए.)
यहां एक सैंपल प्रोजेक्ट दिया गया है. इसमें index.html
और manifest.appcache
, दोनों फ़ाइलों में सही ऑरिजिन ट्रायल टोकन जोड़ने का तरीका बताया गया है.
एक से ज़्यादा जगहों पर टोकन की ज़रूरत क्यों होती है?
एक ही ऑरिजिन ट्रायल टोकन इनसे जुड़ा होना चाहिए:
- AppCache का इस्तेमाल करने वाले आपके सभी एचटीएमएल पेज.
ORIGIN-TRIAL
मेनिफ़ेस्ट फ़ील्ड की मदद से, आपके सभी Appकैश मेनिफ़ेस्ट.
अगर आपने पहले ऑरिजिन ट्रायल में हिस्सा लिया है, तो हो सकता है कि आपने टोकन सिर्फ़ अपने एचटीएमएल पेजों पर जोड़ा हो. AppCache "रिवर्स" ऑरिजिन ट्रायल खास इसलिए है, क्योंकि आपको अपने हर AppCache मेनिफ़ेस्ट के साथ भी एक टोकन जोड़ना होगा.
अपने एचटीएमएल पेजों में ऑरिजिन ट्रायल टोकन जोड़ने से, आपके वेब ऐप्लिकेशन में window.applicationCache
इंटरफ़ेस चालू हो जाता है. जो पेज किसी टोकन से नहीं जुड़े हैं वे window.applicationCache
तरीकों और इवेंट का इस्तेमाल नहीं कर पाएंगे. जिन पेजों पर टोकन नहीं है वे भी AppCache से रिसॉर्स लोड नहीं कर पाएंगे. Chrome 85 और उसके बाद के वर्शन में, वे इस तरह काम करेंगे:
अपने Appcache मेनिफ़ेस्ट में ऑरिजिन ट्रायल टोकन जोड़ने से पता चलता है कि हर मेनिफ़ेस्ट अब भी मान्य है. Chrome 85 और इसके बाद के वर्शन में, अगर किसी भी मेनिफ़ेस्ट में ORIGIN-TRIAL
फ़ील्ड नहीं होगा, तो उसे गलत माना जाएगा. साथ ही, मेनिफ़ेस्ट में दिए गए नियमों को अनदेखा कर दिया जाएगा.
ऑरिजिन ट्रायल को डिप्लॉय करने का समय और लॉजिस्टिक
ऑरिजिन ट्रायल का "रिवर्स" वर्शन, Chrome 84 के साथ आधिकारिक तौर पर शुरू होगा. हालांकि, ऑरिजिन ट्रायल के लिए आज ही साइन अप किया जा सकता है और अपने एचटीएमएल और AppCache मेनिफ़ेस्ट में टोकन जोड़े जा सकते हैं. आपके वेब ऐप्लिकेशन की ऑडियंस, धीरे-धीरे Chrome 84 पर अपग्रेड होने के बाद, आपके जोड़े गए सभी टोकन लागू हो जाएंगे.
अपने Appcache मेनिफ़ेस्ट में टोकन जोड़ने के बाद, about://appcache-internals
पर जाकर पुष्टि करें कि आपके Chrome के लोकल इंस्टेंस (वर्शन 84 या उसके बाद के वर्शन) ने ऑरिजिन ट्रायल टोकन को आपकी मेनिफ़ेस्ट की कैश मेमोरी में सेव की गई एंट्री के साथ सही तरीके से जोड़ा है. अगर आपके ऑरिजिन ट्रायल को पहचान लिया जाता है, तो आपको उस पेज पर Token Expires: Tue Apr 06 2021...
वाला एक फ़ील्ड दिखेगा. यह फ़ील्ड, आपके मेनिफ़ेस्ट से जुड़ा होगा:
वीडियो हटाने से पहले उसकी जांच करना
हमारा सुझाव है कि आप जल्द से जल्द AppCache से माइग्रेट कर लें. अगर आपको अपने वेब ऐप्लिकेशन से AppCache को हटाने की जांच करनी है, तो about://flags/#app-cache
फ़्लैग का इस्तेमाल करके, उसे हटाने की प्रक्रिया को सिम्युलेट करें. यह फ़्लैग Chrome 84 और उसके बाद के वर्शन के लिए उपलब्ध है.
माइग्रेशन से जुड़ी रणनीतियां
सर्विस वर्कर, ज़्यादातर मौजूदा ब्राउज़र में काम करते हैं. ये AppCache की तरह ही ऑफ़लाइन अनुभव देते हैं.
हमने एक polyfill उपलब्ध कराया है, जो AppCache की कुछ सुविधाओं को दोहराने के लिए, सेवा वर्कर का इस्तेमाल करता है. हालांकि, यह AppCache के पूरे इंटरफ़ेस को दोहराता नहीं है. खास तौर पर, यह window.applicationCache
इंटरफ़ेस या उससे जुड़े AppCache इवेंट के लिए कोई विकल्प नहीं देता.
ज़्यादा मुश्किल मामलों के लिए, Workbox जैसी लाइब्रेरी, आपके वेब ऐप्लिकेशन के लिए मॉडर्न सर्विस वर्कर बनाने का आसान तरीका उपलब्ध कराती हैं.
सर्विस वर्कर और AppCache, दोनों एक साथ काम नहीं कर सकते
माइग्रेशन की रणनीति पर काम करते समय, कृपया ध्यान रखें कि Chrome, किसी भी ऐसे पेज पर AppCache की सुविधा बंद कर देगा जो सर्विस वर्कर के कंट्रोल में लोड होता है. दूसरे शब्दों में, किसी पेज को कंट्रोल करने वाले सर्विस वर्कर को डिप्लॉय करने के बाद, उस पेज पर AppCache का इस्तेमाल नहीं किया जा सकता.
इसलिए, हमारा सुझाव है कि आप एक-एक करके सेवा वर्कर पर माइग्रेट न करें. ऐसे सेवा वर्कर को डिप्लॉय करना गलत होगा जिसमें कैश मेमोरी में डेटा सेव करने का सिर्फ़ कुछ लॉजिक शामिल हो. "अंतराल को भरने" के लिए, AppCache का इस्तेमाल नहीं किया जा सकता.
इसी तरह, अगर आपने AppCache हटाने से पहले कोई सेवा वर्कर डिप्लॉय किया है और आपको AppCache को पहले जैसा करने की ज़रूरत पड़ती है, तो आपको उस सेवा वर्कर को अनरजिस्टर करना होगा. जब तक किसी पेज के लिए रजिस्टर किया गया सर्विस वर्कर मौजूद है, तब तक AppCache का इस्तेमाल नहीं किया जाएगा.
क्रॉस-प्लैटफ़ॉर्म की कहानी
अगर आपको Appकैश हटाने के लिए, उसके प्लान के बारे में ज़्यादा जानकारी चाहिए, तो हमारा सुझाव है कि आप किसी ब्राउज़र वेंडर से संपर्क करें.
Firefox के सभी प्लैटफ़ॉर्म
Firefox ने 44वें वर्शन (सितंबर 2015) में, AppCache को बंद कर दिया है. साथ ही, सितंबर 2019 से अपने बीटा और नाइटली वर्शन में, इसकी सुविधा को हटा दिया है.
iOS और macOS पर Safari
Safari ने साल 2018 की शुरुआत में, AppCache का इस्तेमाल बंद कर दिया था.
iOS पर Chrome
iOS के लिए Chrome एक खास मामला है, क्योंकि यह अन्य प्लैटफ़ॉर्म पर Chrome के मुकाबले किसी दूसरे ब्राउज़र इंजन का इस्तेमाल करता है: WKWebView. फ़िलहाल, WKWebView का इस्तेमाल करने वाले iOS ऐप्लिकेशन में सर्विस वर्कर काम नहीं करते. साथ ही, Chrome की Appकैश मेमोरी हटाने की सूचना, iOS के लिए Chrome पर Appकैश की उपलब्धता को कवर नहीं करती. अगर आपको पता है कि आपके वेब ऐप्लिकेशन में 'Chrome for iOS' का इस्तेमाल करने वाले ज़्यादा उपयोगकर्ता हैं, तो कृपया इस बात का ध्यान रखें.
Android वेबव्यू
Android ऐप्लिकेशन के कुछ डेवलपर, वेब कॉन्टेंट दिखाने के लिए Chrome वेबव्यू का इस्तेमाल करते हैं. साथ ही, वे AppCache का भी इस्तेमाल कर सकते हैं. हालांकि, वेबव्यू के लिए ऑरिजिन ट्रायल को चालू नहीं किया जा सकता. इस वजह से, Chrome वेबव्यू में ऑरिजिन ट्रायल के बिना AppCache काम करेगा. ऐसा तब तक होगा, जब तक इसे पूरी तरह से हटा नहीं दिया जाता. इसे Chrome 90 में हटा दिया जाएगा.
ज़्यादा जानें
AppCache से सेवा वर्कर पर माइग्रेट करने वाले डेवलपर के लिए, यहां कुछ संसाधन दिए गए हैं.
लेख
- सर्विस वर्कर: परिचय
- Service Worker का लाइफ़साइकल
- प्रोग्रेसिव वेब ऐप्लिकेशन से जुड़ी ट्रेनिंग
- नेटवर्क की विश्वसनीयता
टूल
सहायता पाना
अगर आपको किसी टूल का इस्तेमाल करने में कोई समस्या आती है, तो उसके GitHub रिपॉज़िटरी में समस्या की शिकायत करें.
html5-appcache
टैग का इस्तेमाल करके, Stack Overflow पर AppCache से माइग्रेट करने के बारे में सामान्य सवाल पूछा जा सकता है.
अगर आपको Chrome से AppCache हटाने से जुड़ी कोई गड़बड़ी मिलती है, तो कृपया Chromium के समस्या ट्रैकर का इस्तेमाल करके उसकी शिकायत करें.
स्मिथसोनियन इंस्टिट्यूशन आर्काइव्स, Acc. 11-007, Box 020, इमेज नंबर MNH-4477.