Internet Explorer के आखिर में

Maersk.com के ग्राहकों और डेवलपर के लिए, Internet Explorer के खत्म होने का क्या मतलब है.

steveworkman
steveworkman

मैं स्टीव वर्कमैन हूं और मैं Maersk.com के लिए लीड इंजीनियर हूं. Maersk इंटिग्रेटेड सप्लाई चेन लॉजिस्टिक के लिए दुनिया में सबसे आगे है. इससे ग्राहकों को 118 साल, दुनिया के अलग-अलग हिस्सों में सामान एक जगह से दूसरी जगह भेजने में मदद मिलती है और इसकी बुकिंग 20 साल से ज़्यादा समय से ऑनलाइन हुई है. मई 2022 की शुरुआत से, @Maersk ने ग्राहकों को इस्तेमाल करने वाले अपने सिस्टम पर, आधिकारिक रूप से Internet Explorer (IE) का इस्तेमाल करना बंद कर दिया. Microsoft ने जून 2022 से, आधिकारिक तौर पर IE के लिए सहायता बंद कर दी है. यह वेब के एक अहम युग का अंत है और एक नए की शुरुआत है.

मैं 2018 में Maersk से जुड़ा और एक नया ग्लोबल नेविगेशन बार बनाने का मेरा पहला प्रोजेक्ट था. यह पूरी तरह से टेस्ट करने लायक होना चाहिए. इसमें डाउनटाइम के बिना, दुनिया भर में डिप्लॉय और अपडेट करना आसान होना चाहिए, मोबाइल-फ़र्स्ट होना चाहिए, रिस्पॉन्सिव होना चाहिए, कई ब्रैंड के साथ काम करना चाहिए, इसे कॉन्फ़िगर करना चाहिए, 11 भाषाओं में अनुवाद करना चाहिए, और IE9 के साथ काम करना चाहिए.

साल 2018 में, Windows 7 और इसका डिफ़ॉल्ट ब्राउज़र IE9 काफ़ी लोकप्रिय था. हालांकि, 2020 की शुरुआत में ही Windows 10 और IE11 में काफ़ी लोगों तक पहुंचा (आंकड़ों के काउंटर के मुताबिक). अपने डेटा को देखने पर, हमने पाया कि IE9 या उससे भी खराब स्थिति में, IE11 का इस्तेमाल करने वाले ग्राहकों ने कम्पैटिबिलिटी मोड में कारोबार से कितना पैसा हासिल किया. यह ट्रैफ़िक, उभरते हुए बाज़ारों और उन इलाकों में काफ़ी ज़्यादा था जहां Maersk के ग्राहक तेज़ी से बढ़ रहे थे.

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

इस समस्या को हल करने के लिए, हमने नेविगेशन कॉम्पोनेंट और आने वाले समय में लॉन्च होने वाले सभी वेब ऐप्लिकेशन को बेहतर बनाया. हम इसे "काम" कर देंगे, लेकिन ऐसा करने के लिए काफ़ी ज़्यादा पॉलीफ़िल और पाबंदियां हो सकती हैं—उदाहरण के लिए, IE में फ़ेच API की सुविधा काम नहीं करती, लेकिन कुछ ऐसे पॉलीफ़िल हैं जो IE10 पर वापस जाते हैं और जिन्हें हम उन ब्राउज़र में शामिल करते हैं. IE9 के लिए, हमने XMLHttpRequest कॉल को एक अलग फ़ाइल में कोड किया, ताकि यह सिर्फ़ उन मामलों में लोड हो सके जहां fetch को पॉलीफ़िल न किया जा सके.

जब IE9 का समर्थन कम होने की बात आई, जब कुछ ही ग्राहक मौजूद थे, तब हम आधुनिक ब्राउज़र पर अपने उपयोगकर्ताओं को कम से कम प्रयास और अधिकतम लाभ के साथ, अपने ऐप्लिकेशन से इस कोड को आसानी से छोड़ने में सफल रहे.

जैसे-जैसे Maersk का डिजिटल ट्रांसफ़ॉर्मेशन जारी रहा, हमने साइट के कई हिस्सों को VueJS की मदद से काम करने वाले माइक्रो-फ़्रंट-एंड का इस्तेमाल करके फिर से तैयार किया. Vue में ऐसी कई सुविधाएं हैं जो इसे आने वाले समय में इस्तेमाल करने लायक बनाती हैं. इसके लिए, ऐडवांस ट्री-शेकिंग और बंडल ऑप्टिमाइज़ेशन के लिए बेहतरीन प्रीसेट कॉन्फ़िगरेशन से, मॉडर्न मोड में ऐप्लिकेशन के दो वर्शन बनाए जाते हैं—एक ऐसा जो हमेशा चलने वाले ब्राउज़र के लिए सबसे नए ES मॉड्यूल सिंटैक्स का इस्तेमाल करता है और एक, जो ऐसे लेगसी ऐप्लिकेशन के लिए है जो ES6 मॉड्यूल को नहीं समझते. यह लेगसी वर्शन, IE जैसे ब्राउज़र पर दिखाया जाता है. इसके gzip किए गए पॉलीफ़िल बंडल में, अक्सर 100 केबी का साइज़ होता है. ऐसा सिर्फ़ उन सुविधाओं की वजह से होता है जो ब्राउज़र में मौजूद नहीं हैं.

हमने पाया कि हम ज़्यादातर आधुनिक सीएसएस लेआउट तकनीकों का इस्तेमाल कर सकते हैं, जैसे कि सीएसएस ग्रिड, क्योंकि Microsoft ने IE10 में खास जानकारी को फिर से शुरू किया है. हमने autoprefixer और CSS Tricks के इस लेख की मदद से, किसी पेज के अलग-अलग हिस्सों के नाम बताने में हमारी मदद की है. हमारे पास ऐसा लेआउट सिस्टम है जो कम साइज़ और हर प्रोजेक्ट के हिसाब से सही है. इसके बावजूद, डिवाइस के साथ काम करने में ऐसी समस्याएं थीं जिन्हें ठीक करने में बहुत ज़्यादा समय लगता था.

अचानक हम लागत-फ़ायदे के विश्लेषण के चरण पर वापस आते हैं, लेकिन इस बार IE के किसी भी वर्शन के लिए, और IE9 की तरह ही, यह हर एक प्रोजेक्ट के लिए हर किसी की मदद करने और विकास में लगने वाले कई हफ़्तों के बीच का अंतर है. विश्वास है कि आधुनिक ब्राउज़र का इस्तेमाल करना हमारे ग्राहकों के लिए एक बेहतर अनुभव है, इसलिए जब हमारे उपयोगकर्ता वेबसाइट पर आते हैं, तो हम उन्हें IE से दूर भेज देते हैं. हमने पाया कि यह सुविधा उन सक्रिय ग्राहकों के लिए काफ़ी कम थी जिन्हें हमारे साथ बातचीत करने के लिए, IE में खोलने की आदत हो गई थी. यह मैसेज अच्छा था, लेकिन यह गणित के सवाल हल करने के लिए काफ़ी नहीं है.

जब आयरलैंड से आने वाले लोगों की संख्या बढ़ी, तो उससे पहले कई अन्य लोगों की अगुवाई करने का फ़ैसला किया गया और IE के लिए आधिकारिक समर्थन खत्म किया गया. हालांकि, आंकड़ों में अब भी कहा जा रहा है कि हमें इस पहल का साथ देना चाहिए. तो, अभी क्यों?

हॉरिज़ॉन्टल नेविगेशन बार वाली वेबसाइट.
Maersk का होम पेज, जिसमें ग्लोबल नेविगेशन कॉम्पोनेंट मौजूद है.

आसान शब्दों में कहें, तो वेब प्लैटफ़ॉर्म आगे बढ़ गया है और IE11 वह काम नहीं कर पा रहा जो हमें करना है. वह कुछ पॉलीफ़िल की छोटी सेना के साथ भी नहीं हो पा रहा है. नेविगेशन कॉम्पोनेंट का इस्तेमाल करें—आज के आधुनिक वेब प्लैटफ़ॉर्म में यह एक कस्टम एलिमेंट है. इसकी अपनी खास स्टाइल है, जो सीएसएस वैरिएबल और कंटेनर क्वेरी के ज़रिए चलती है. इसलिए, यह एक ही कॉम्पोनेंट में सब कुछ कंट्रोल करती है. प्लैटफ़ॉर्म के इन हिस्सों के बिना, इन कॉम्पोनेंट की स्टाइल को ऐप्लिकेशन से पूरी तरह बदला जा सकता है और स्टाइल, दूसरे कॉम्पोनेंट में लीक हो सकती हैं या ऐप्लिकेशन पर वापस आ सकती हैं. यहां पॉलीफ़िल की मदद से ज़्यादातर सुविधाओं को एम्युलेट किया जा सकता है. इनमें कस्टम एलिमेंट, ShadyCSS, ShadyDOM, और टेंप्लेट एलिमेंट शामिल हैं.

व्यावहारिक तौर पर, ये पॉलीफ़िल अलग-अलग कॉम्पोनेंट के लिए बहुत अच्छे से काम करते हैं. हालांकि, अगर किसी कॉम्प्लेक्स ऐप्लिकेशन में कई कॉम्पोनेंट को मिलाया जाता है, तो IE में दस सेकंड की सफ़ेद स्क्रीन को बंद कर दिया जाता है. वहीं JavaScript का रनटाइम, चालीस सेकंड के लिए स्टाइल ट्री का कैलकुलेशन करने की कोशिश करता है. संक्षेप में, ब्राउज़र का समर्थन करने के लिए उपयोगकर्ता अनुभव के साथ गंभीर रूप से छेड़छाड़ की गई थी.

पहले हमें थोड़ी-बहुत रुकावटें आती थीं—पॉलीफ़िल की मदद से पहली बार पेंट करने में, आधा सेकंड का समय लग सकता था, लेकिन बहुत ज़्यादा नहीं. यह पहले अलग था और इस वजह से अब ये ऐप्लिकेशन इस्तेमाल नहीं किए जा सकते. पॉलीफ़िल ऐसा तब ही कर सकते हैं, जब आधुनिक वेब प्लैटफ़ॉर्म के काम करने की क्षमता में चुनौती आती हो.

आपको पता है कि IE का इस्तेमाल बंद करने के बाद क्या हुआ? बहुत, बहुत कम. ग्राहकों को सहायता पाने के लिए किसी भी तरह की सहायता या खराब फ़ीडबैक नहीं मिला है. हमारे इंजीनियर खुश हैं और हमारे ऐप्लिकेशन में Vue 3 (जो IE11 के साथ काम नहीं करता, क्योंकि प्रॉक्सी ऑब्जेक्ट को पॉलीफ़िल नहीं किया जा सकता) और बंडल के छोटे साइज़ के लिए अपग्रेड पाथ उपलब्ध है. सीएसएस वैरिएबल और वैरिएबल फ़ॉन्ट के लिए पूरी तरह से काम करने से, सभी ब्रैंड के लिए थीम को आसान बनाया जा सकता है. साथ ही, Vue के सिंगल फ़ाइल कॉम्पोनेंट में टोकन का इस्तेमाल करने से, सीखने-समझने की क्षमता भी कम होती है और डेवलपर को बेहतर अनुभव मिलता है.

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

मुझे यह देखने में खुशी हो रही है कि कंपनी में नए वेब प्लैटफ़ॉर्म की सुविधाएं कैसे इस्तेमाल की जा सकती हैं. इसमें डार्क मोड इस्तेमाल करना, ताकि रात में जहाज़ के सिस्टम आसानी से इस्तेमाल किए जा सकें. वेब ब्लूटूथ, WebXR, और PWA तक, ताकि वेब ऐप्लिकेशन किसी भी स्थिति में हमारे आस-पास की जगहों से इंटरैक्ट कर सकें. कई चीज़ों के लिए धन्यवाद, Internet Explorer; अब हम वेब प्लैटफ़ॉर्म से संपर्क करने के लिए स्वतंत्र हैं.

हीरो इमेज, मैट बॉट्सफ़ोर्ड की ओर से.