जब आप वेब ब्राउज़ करते हैं, तो यह आम बात है कि साइटें एक डिवाइस से दूसरे डिवाइस पर अलग-अलग दिखती हैं। शायद कुछ सुविधाएं बिल्कुल काम नहीं करतीं।
अक्सर, यह वेबसाइट की समस्या नहीं होती। यह आपका ब्राउज़र होता है। पांच प्रमुख डेस्कटॉप ब्राउज़र वेब पेज प्रदर्शित करने के लिए चार अलग-अलग "रेंडरिंग इंजन" का उपयोग करते हैं — विंडोज 10 के लिए नया माइक्रोसॉफ्ट एज ब्राउज़र पांचवां इंजन पेश करेगा — और प्रत्येक अलग तरह से काम करता है।
इसका मतलब है कि वेब का आपका अनुभव इस बात पर निर्भर कर सकता है कि आप किस ब्राउज़र का उपयोग कर रहे हैं, और यहां तक कि उस ब्राउज़र का कौन सा संस्करण।
रेंडरिंग इंजन क्या है?
एक वेब पेज कोई एकल इकाई नहीं है जिसे डाउनलोड करके एक बार में एक पिक्सेल स्क्रीन पर प्रदर्शित किया जाए। इसके बजाय यह अनिवार्य रूप से विभिन्न प्रकार के कोड — HTML, CSS, जावास्क्रिप्ट, PHP और अन्य — में लिखे निर्देशों की एक श्रृंखला है जो ब्राउज़र को बताते हैं कि क्या करना है, कहां और कैसे करना है।
प्रत्येक ब्राउज़र कोड में निहित सामग्री और स्टाइलिंग जानकारी लेने और इसे पूरी तरह से स्वरूपित रूप में स्क्रीन पर प्रदर्शित करने के लिए एक रेंडरिंग इंजन का उपयोग करता है, जिसे कभी-कभी लेआउट इंजन भी कहा जाता है।
समस्या यह है कि हर ब्राउज़र में उपयोग किया जाने वाला कोई एकल रेंडरिंग इंजन नहीं है। और हालांकि प्रत्येक भाषा एक विस्तृत विनिर्देश द्वारा परिभाषित की जाती है, इंजन केवल उस विनिर्देश की व्याख्या पेश कर सकता है।
विशेष रूप से CSS (वह कोड जो स्टाइलिंग जानकारी प्रदान करता है) के साथ, कोई भी इंजन बिल्कुल समान परिणाम उत्पन्न नहीं करेगा। कभी-कभी अंतर केवल कुछ गलत संरेखित पिक्सेल तक सीमित हो सकते हैं, लेकिन कई बार वे अधिक मौलिक रूप से भिन्न हो सकते हैं।
कौन से ब्राउज़र किन इंजनों का उपयोग करते हैं
सबसे लोकप्रिय ब्राउज़रों द्वारा उपयोग किए जाने वाले चार मुख्य रेंडरिंग इंजन हैं।
- WebKit: एक ओपन सोर्स इंजन जिसका उपयोग OS X और iOS पर सफारी द्वारा किया जाता है, साथ ही मोबाइल उपकरणों पर कई अन्य ब्राउज़रों द्वारा, जिसमें मूल एंड्रॉइड ब्राउज़र शामिल है;
- Blink: WebKit पर आधारित एक ओपन सोर्स इंजन, यह क्रोम, ओपेरा, अमेज़न सिल्क और एंड्रॉइड के WebView (वह ब्राउज़र जो ऐप्स के भीतर खुलता है) को शक्ति प्रदान करता है;
- Gecko: मोज़िला फाउंडेशन द्वारा विकसित एक ओपन सोर्स इंजन, इसका उपयोग फ़ायरफ़ॉक्स द्वारा किया जाता है;
- Trident: माइक्रोसॉफ्ट द्वारा विकसित एक मालिकाना इंजन जिसका उपयोग इंटरनेट एक्सप्लोरर में किया जाता है। माइक्रोसॉफ्ट एज ब्राउज़र एजएचटीएमएल नामक एक नए संस्करण का उपयोग करेगा।
वेब मानक
अलग-अलग रेंडरिंग इंजनों के बीच का अंतर तब की तुलना में बहुत छोटा है जब इंटरनेट एक्सप्लोरर प्रमुख ब्राउज़र था।
Acid3 जैसे परीक्षण दिखाते हैं कि एक ब्राउज़र कितनी सटीकता से एक पेज को रेंडर करता है, और अधिकांश आधुनिक ब्राउज़र उच्च स्कोर करते हैं। हालांकि मानकों के अनुरूप होना एक बेहद जटिल कार्य है।
HTML, CSS और अन्य के विनिर्देश विशाल हैं। नए तत्व जोड़े जाते हैं; पुराने, अप्रयुक्त या पुराने तत्व हटा दिए जाते हैं। रेंडरिंग इंजनों को इन परिवर्तनों को प्रतिबिंबित करने में लंबा समय लग सकता है।
HTML5 और CSS विनिर्देशों में कुछ तत्व अभी भी किसी भी मुख्यधारा के ब्राउज़र द्वारा समर्थित नहीं हैं, कुछ केवल आंशिक रूप से समर्थित हैं, जबकि अन्य कुछ ब्राउज़रों द्वारा समर्थित हैं लेकिन सभी द्वारा नहीं।
वेबसाइट html5test.com आपको अपने ब्राउज़र, और आपके द्वारा चलाए जा रहे विशिष्ट संस्करण का परीक्षण करने में सक्षम बनाती है, यह देखने के लिए कि यह HTML5 की आधिकारिक और प्रायोगिक दोनों सुविधाओं का कितना अच्छा समर्थन करता है। लेखन के समय, क्रोम प्रमुख ब्राउज़रों में सर्वश्रेष्ठ रैंक करता है, जबकि इंटरनेट एक्सप्लोरर (v11) सबसे निचले स्थान पर है।
यदि कोई वेब डेवलपर किसी ऐसी सुविधा का उपयोग करता है जो एक ब्राउज़र में समर्थित है लेकिन दूसरे में नहीं, तो असमर्थित ब्राउज़र को या तो एक करीबी समकक्ष पर समझौता करना होगा या सुविधा को पूरी तरह से अनदेखा करना होगा (उदाहरण के लिए, एक पारदर्शी बॉक्स को अपारदर्शी के रूप में रेंडर किया जा सकता है)।
यह वेब पेजों को रेंडर करने का काम दिखने से कहीं अधिक जटिल बना देता है। एक ब्राउज़र जिसे अधिक बार अपडेट किया जाता है, वह उस ब्राउज़र की तुलना में अधिक मानक-अनुरूप होने की संभावना रखता है जिसे नहीं किया जाता है, जैसा कि नियमित स्वचालित क्रोम अपडेट की तुलना में कहीं अधिक विरल IE अपडेट द्वारा उजागर किया गया है।
और भी अन्य कारक खेल में हैं।
- इंजन में बग: एक रेंडरिंग इंजन सॉफ्टवेयर है, और सभी सॉफ्टवेयर में बग होते हैं। हालांकि महत्वपूर्ण बग जल्दी पाए और ठीक किए जाएंगे, यह गारंटी देना असंभव है कि एक वेब पेज पर कोड का एक विशिष्ट संयोजन रेंडर होने पर अप्रत्याशित परिणाम उत्पन्न नहीं करेगा
- वेब पेज में बग: ब्राउज़रों में एक निश्चित स्तर की त्रुटि सहनशीलता अंतर्निहित होती है, लेकिन यह एक इंजन से दूसरे में भिन्न होगी। कोड में त्रुटियों वाला एक वेब पेज एक ब्राउज़र में पूरी तरह से रेंडर हो सकता है, लेकिन दूसरे में बुरी तरह टूट सकता है
- फॉन्ट: टाइपफेस कैसे प्रदर्शित होते हैं यह ब्राउज़र द्वारा नहीं बल्कि ऑपरेटिंग सिस्टम द्वारा नियंत्रित किया जाता है। विंडोज और OS X फॉन्ट को अलग-अलग रेंडर करते हैं, इसलिए एक ही ब्राउज़र में एक ही फॉन्ट अलग-अलग प्लेटफॉर्म पर देखे जाने पर अलग दिख सकता है
- विरासत: ब्राउज़र अक्सर नई सुविधाओं को अपनाते हैं, विशेष रूप से CSS के लिए, इससे पहले कि वे आधिकारिक विनिर्देश का हिस्सा बनें। यदि सुविधा को अपनाए जाने पर इसके कार्यान्वयन में परिवर्तन होता है, तो ब्राउज़र डेवलपर को यह तय करना होगा कि क्या परिवर्तन को अपनाया जाए और पुराने संस्करण के लिए डिज़ाइन की गई हजारों वेबसाइटों के साथ संगतता तोड़ने का जोखिम उठाया जाए, या नए संस्करण को पूरी तरह से अनदेखा किया जाए
- मालिकाना सुविधाएं: कुछ ब्राउज़र मालिकाना तकनीकों का उपयोग कर सकते हैं जो अन्यत्र उपलब्ध नहीं हैं। यह सबसे प्रसिद्ध रूप से माइक्रोसॉफ्ट के एक्टिवएक्स फ्रेमवर्क के साथ इंटरनेट एक्सप्लोरर में देखा गया था, हालांकि कंपनी नए माइक्रोसॉफ्ट एज ब्राउज़र में इसका उपयोग नहीं करेगी
निष्कर्ष
इतने सारे मुद्दों के शामिल होने के साथ, यह कोई आश्चर्य की बात नहीं है कि ब्राउज़र वेब पेजों को कैसे संभालते हैं, इसमें अंतर बने रहते हैं।
स्थिति में सुधार हो रहा है, लेकिन पूरी तरह से हल होने की संभावना नहीं है। यह मदद करेगा यदि हर कोई अपने चुने हुए ब्राउज़र का नवीनतम संस्करण चलाए, लेकिन छह साल पुराने इंटरनेट एक्सप्लोरर 8 की अभी भी 4.5 प्रतिशत बाजार हिस्सेदारी के साथ, यह बहुत दूर है।
आप किस ब्राउज़र का उपयोग करते हैं, और क्या आप इसे अपडेट रखते हैं? क्या आपको कोई ऐसी वेबसाइट मिली है जो आपके चुने हुए ब्राउज़र में काम नहीं करती? हमें टिप्पणियों में बताएं।
छवि क्रेडिट: डिवाइसेज़ वाया जेरेमी कीथ, अनसपोर्टेड ब्राउज़र वाया डंकन हिल