Internet Explorer के आखिर में

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

steveworkman
steveworkman

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

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

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

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

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

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

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

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

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

IE से आने वाले ट्रैफ़िक में गिरावट आने के बाद, Maersk ने कई अन्य कंपनियों की तरह ही IE के लिए आधिकारिक सहायता बंद करने का फ़ैसला लिया. हालांकि, आंकड़ों के हिसाब से, हमें अब भी IE के लिए सहायता देनी चाहिए. तो, अब क्यों?

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

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

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

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

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

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

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