प्रोग्रेसिव वेब ऐप्लिकेशन के ऑफ़लाइन होने पर सहायता पाने की सुविधा को बेहतर बनाना

पेनी मैक्लैक्लन
पेनी मैकलैक्लन

प्रोग्रेसिव वेब ऐप्लिकेशन (PWA), मोबाइल और डेस्कटॉप डिवाइसों के लिए वेब टेक्नोलॉजी का इस्तेमाल करके, आधुनिक और इंस्टॉल किए जा सकने वाले ऐप्लिकेशन बनाने का पैटर्न है.

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

PWA की सभी शर्तों का मकसद यह पक्का करना होता है कि वेब ब्राउज़ करते समय, उपयोगकर्ताओं को ऐप्लिकेशन के मुकाबले अच्छी क्वालिटी का अनुभव मिले. किसी PWA को इंस्टॉल करने की क्षमता चालू करने से पहले, Chrome PWA की ज़रूरी शर्तों के हिसाब से जांच करता है.

Chrome से डिवाइस पर सिर्फ़ उन ऐप्लिकेशन को इंस्टॉल किया जा सकता है जो सभी मुख्य प्रोग्रेसिव वेब ऐप्लिकेशन इंस्टॉल करने की ज़रूरी शर्तों को पूरा करते हैं. इनमें ऑफ़लाइन मोड के लिए सहायता भी शामिल है.

पिछला ऑफ़लाइन डिटेक्शन लॉजिक

ऑफ़लाइन सहायता की पुष्टि करना, कई सालों से PWA को इंस्टॉल करने से जुड़ी शर्तों का हिस्सा रहा है. कुछ समय पहले तक, Chrome में सर्विस वर्कर के ज़रिए किए गए अनुरोधों को सिम्युलेट करने की सुविधा नहीं थी. इसलिए, ऑफ़लाइन मोड के सही व्यवहार की पूरी जांच नहीं की जा सकी.

सर्विस वर्कर का डायग्राम

इसका मतलब यह था कि Chrome यह पुष्टि नहीं कर सका कि ऑफ़लाइन जांच के दौरान, fetch इवेंट हैंडलर ने एचटीटीपी 200 वाला मान्य रिसॉर्स दिखाया या नहीं. Chrome ने सिर्फ़ यह जांच की है कि सर्विस वर्कर के पास वाकई में fetch हैंडलर है या नहीं.

ऑफ़लाइन पहचान का लॉजिक अपडेट किया गया

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

हमने इस नई सुविधा का इस्तेमाल करने का प्लान बनाया था, ताकि यह पक्का किया जा सके कि ऑफ़लाइन होने पर PWA ने एक मान्य पेज दिया हो, लेकिन उन प्लान को कुछ समय के लिए रोक दिया हो. अगर पेज में ऐसा सर्विस वर्कर है जिसमें fetch इवेंट हैंडलर शामिल है, तो वह इंस्टॉल हो सकता है या नहीं, इसकी जांच की प्रोसेस जारी रहेगी.

डेवलपर पर इसका क्या असर होगा?

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

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

डेवलपर टूल के समस्याएं टैब में दिखने वाली चेतावनी, Chrome 90 के आस-पास हटा दी जाएगी.