अब एक्स-यूए-संगत आईई = एज का उपयोग क्यों करें?


95

मैंने हाल ही में कई ऑनलाइन पाठ्यक्रम लिए हैं और मैं अभी भी कुछ प्रशिक्षकों को डिफ़ॉल्ट रूप से उनके दस्तावेजों के शीर्ष पर निम्नलिखित मेटा टैग जोड़ते हुए देखता हूं:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

यह प्रतीत होता है कि यह उतना ही महत्वपूर्ण और उपयोगी है जितना कि <meta charset="UTF-8">

पर क्यों?

माइक्रोसॉफ्ट के मॉर्डन.आई डॉक्यूमेंटेशन के अनुसार यह "सर्वश्रेष्ठ अभ्यास" है जो "इंटरनेट एक्सप्लोरर नवीनतम इंजन का उपयोग करता है" सुनिश्चित करता है। ठीक है पर्याप्त ठीक है।

हालाँकि, यदि आप MSDN पर प्रवाह आरेख का पालन करते हैं , तो यह स्पष्ट रूप से दिखाता है कि `X-UA- संगत जानकारी के बिना एक दस्तावेज़ उपयोगकर्ता की" संगतता दृश्य "वरीयताओं को अग्रेषित किया गया है, और यदि वह सेट नहीं है, तो बस DOCTYPE नामांकन का पालन करें

दूसरे शब्दों में, जब तक उपयोगकर्ता के पास कुछ संगतता दृश्य सेटिंग्स नहीं होती हैं, IE बस आपका अनुसरण करेगा! DOCTYPE और वैसे भी रेंडर करने के लिए अपने ब्राउज़र के नवीनतम मानक मोड का उपयोग करें ... X-UA-Compatible IE=Edgeबिल्कुल भी एक बयान की आवश्यकता नहीं है ।

जैसा कि MSDN कहता है: " धार मोड को सक्षम करने के लिए HTML5 दस्तावेज़ प्रकार घोषणा का उपयोग करें "।

तो किन परिस्थितियों में X-UA-Compatible IE=Edgeजरूरत है?

जवाबों:


153

जैसा कि @ डेविड का जवाब बताता है, जब तक आप "स्थानीय इंट्रानेट" ज़ोन में किसी साइट को होस्ट नहीं कर रहे हैं <meta http-equiv="X-UA-Compatible" content="IE=edge">, आपके वेबपृष्ठों में शामिल करने के लिए बहुत कम कारण हैं , और ( Microsoft के सर्वोत्तम अभ्यास सिफारिशों के अनुसार ) बिल्कुल इसे इसमें शामिल करने का कोई कारण नहीं है एचटीएमएल। (आपको इसे अपने सर्वर कॉन्फ़िगरेशन या साइट हेडर में रखना चाहिए - HTML में ही नहीं।)

यदि आप X-UA-Compatibleअपने प्रोजेक्ट में कहीं भी उपयोग करने पर विचार कर रहे हैं , तो आपको यह याद रखना चाहिए कि संगतता दृश्य केवल IE8, 9 और 10. को प्रभावित करता है। इसे केवल IE8 में पेश किया गया था और IE11 में अक्षम किया गया था।

यह भी जान लें कि IE11 इस समय IE का एकमात्र आधिकारिक रूप से समर्थित संस्करण है । सभी पुराने संस्करणों को असुरक्षित माना जाना चाहिए।

यदि वह आपको इसे उपयोग न करने के लिए मनाने के लिए पर्याप्त कारण नहीं था, तो विचार करें कि Microsoft स्थिति यह है कि IE8 और ऊपर पहले से ही मानक मोड में प्रस्तुत करता <!DOCTYPEहै जब एक मौजूद होता है , जिससे यह और भी अधिक व्यर्थ हो जाता है।

आप स्वयं देख सकते हैं कि IE किस दस्तावेज़ मोड का उपयोग करने का निर्णय लेता है:

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें

जैसा कि आप देख सकते हैं, यदि कोई X-UA-Compatibleमेटा टैग या HTTP हेडर मौजूद नहीं है, तो यह उपयोगकर्ता की "कम्पेटिबिलिटी व्यू" सेटिंग्स की जाँच करता है। यदि उपयोगकर्ता के पास आपकी वेबसाइट के लिए कोई आईई नहीं है, तो IE एक <!DOCTYPEघोषणा की उपस्थिति के लिए जांच करता है । यदि यह एक पाता है तो यह स्वचालित रूप से नवीनतम मानक मोड का उपयोग करता है (उर्फ "EmulateIEx")। यदि ऐसा नहीं होता है, तो यह क्विरक्स मोड में बदल जाता है।

Microsoft से "X-UA- कम्पेटिबल" मेटा टैग का उपयोग न करने के और भी कारण।

जब इंटरनेट एक्सप्लोरर एक्स-यूए-कम्पेटिबल मेटा टैग का सामना करता है तो यह नामित संस्करण के इंजन का उपयोग करके शुरू होता है। यह एक प्रदर्शन हिट है क्योंकि ब्राउज़र को सामग्री का विश्लेषण बंद करना और पुनः आरंभ करना होगा।

दूसरे शब्दों में, यह शुरुआती पृष्ठ रेंडर को धीमा कर देता है

X-UA- कम्पेटिबल निर्देश एप्लिकेशन को नवीनतम इंटरनेट एक्सप्लोरर संस्करण में काम करने की अनुमति देने का एक उपकरण है, जबकि एप्लिकेशन में अपडेट किए जाते हैं

इसे केवल अस्थायी उपयोग के लिए बनाया गया था।

सबसे अच्छा अभ्यास एक एक्स-यूए-संगत HTTP हैडर है । प्रतिक्रिया हेडर में निर्देश जोड़ना इंटरनेट एक्सप्लोरर को बताता है कि सामग्री शुरू करने से पहले किस इंजन का उपयोग करना है। इसे वेब साइट के सर्वर में कॉन्फ़िगर किया जाना चाहिए।

दूसरे शब्दों में, एक्स-यूए-कम्पैटिबल को लागू करने के बेहतर तरीके हैं यदि आपको इसकी बिल्कुल आवश्यकता है।

12 जनवरी 2016 से, समर्थित ऑपरेटिंग सिस्टम के लिए उपलब्ध इंटरनेट एक्सप्लोरर का केवल सबसे वर्तमान संस्करण तकनीकी सहायता और सुरक्षा अपडेट प्राप्त करेगा। इंटरनेट एक्सप्लोरर 11 इंटरनेट एक्सप्लोरर का अंतिम संस्करण है, और विंडोज 7, विंडोज 8.1 और विंडोज 10 पर सुरक्षा अपडेट, संगतता सुधार और तकनीकी सहायता प्राप्त करना जारी रखेगा ।

IE11 IE का एकमात्र आधिकारिक रूप से समर्थित संस्करण है

X-UA-Compatibleआपके HTML में मेटा टैग को शामिल करने का एकमात्र कारण आपकी वेबसाइट के लिए IE8, 9 और 10 में उपयोगकर्ता की "संगतता दृश्य" सेटिंग को ओवरराइड करना था। लगभग हर मामले में उपयोगकर्ता ने इन सेटिंग्स को नहीं बदला होगा (वे ऐसा क्यों करेंगे?), और अब वे ब्राउज़र अब भी समर्थित नहीं हैं।

संक्षेप में: इस टैग का दिन हो चुका है।


17
वे फ्लो चार्ट शानदार हैं।
bennettp123 8

9
बस एक नोट, आज (10/16/2015) के रूप में, यह सच है कि IE11 में कम्पास बटन चला गया है, लेकिन यह अभी भी सेटिंग्स मेनू में सक्षम हो सकता है, इसलिए यह अभी भी एक संभावना के रूप में मौजूद है। हम आज इसका उपयोग करते हैं क्योंकि हमारे वेब आधारित सॉफ्टवेयर का उपयोग कॉर्पोरेट इंट्रानेट में किया जाता है जिसमें विरासत प्रणाली होती है जिसे काम करने के लिए कॉम्पिटिटर मोड की आवश्यकता होती है, इसलिए हमें इसके चारों ओर जाना होगा। HTTP हेडर पर शानदार टिप हालांकि, इसके लिए धन्यवाद!
डग जॉनसन

1
चूंकि IE11 में संगतता दृश्य को सक्षम करना अभी भी संभव है और कॉर्पोरेट क्लाइंट ऐसा कर रहे हैं, हेडर / टैग अभी भी उपयोगी है। मैं देख सकता हूं कि HTTP हेडर बेहतर क्यों है लेकिन अगर टैग DOM की शुरुआत में बहुत कम नुकसान पहुंचाता है, और केवल उन ब्राउज़र में जो एज मोड में शुरू नहीं हुए हैं। पूरी तरह से संगतता दृश्य में फंस गए सामयिक उपयोगकर्ता के लिए एक प्रावधान के रूप में, मुझे नहीं लगता कि यह टैग का उपयोग करने के लिए एक बुरा अभ्यास है (ठीक है <head> के शीर्ष पर)।
टॉम बट्टेल

2
@ChuckLeButt या उनके व्यवस्थापक ने समूह नीति के माध्यम से उन्हें "के लिए" किया है। फिर भी कॉरपोरेट सेटिंग में बहुत कुछ ऐसा है, जहां यह हमारे लिए सबसे बड़ी जीत है कि हम इसे ओवरराइड करने का कोई रास्ता निकालें।
टॉम बाउटल

2
@ChuckLeButt मैं आपकी बात को देखता हूं और विरोधाभास करने के लिए विंडोज़-फू नहीं है ... और फिर भी, हमारे ग्राहक ने हमें बताया कि उनके पास बोर्ड भर में कॉम्पिटिटिव मोड में IE11 था; उन्हें यह कैसे पता चला कि वास्तव में हमारे साथ साझा ज्ञान नहीं था। यह संभव है कि उनके पास वास्तव में एक स्पष्ट सूची थी।
टॉम बाउल्ट

18

यदि उपयोगकर्ता "स्थानीय इंट्रानेट" क्षेत्र (जैसे कि कॉर्पोरेट इंट्रानेट) पर स्थित एक पृष्ठ ब्राउज़ कर रहा है, तो डिफ़ॉल्ट रूप से "संगतता दृश्य" चालू है। यह तब है जब मैंने IE को नवीनतम इंजन का उपयोग करने के लिए मजबूर करने के लिए "एक्स-यूए-संगत" का उपयोग किया है।


हां, यह एक वैध उपयोग की तरह लगता है, लेकिन उस स्थिति में आप शायद इसे सर्वर कॉन्फ़िगरेशन या साइट के हेडर में रखना चाहेंगे? stackoverflow.com/a/9338959/199700
चक ले बट

1
Microsoft के भाग में संगतता परिवर्तन देखें के कारण कुछ परिवर्तन हुआ है। स्थानीय इंट्रानेट के अलावा, यदि किसी डोमेन में बहुत सारे उपडोमेन और अनुप्रयोग हैं, तो एक उपडोमेन के लिए संगतता दृश्य जोड़कर इसे अभी ENTIRE डोमेन पर लागू किया जाता है (इससे पहले कि यह केवल विशिष्ट उपडोमेन पर लागू हो)। इसलिए यदि आपके पास केवल एक एप्लिकेशन है जिसे इसकी आवश्यकता हो सकती है, तो आपको अपने सभी अन्य लोगों के लिए समर्थन समस्याओं से बचने के लिए ऐसा करना चाहिए।
किलकेनी

@ChuckLeButt, हेडर तब तक अच्छे हैं जब तक आप नेटवर्क पर हैं, लेकिन अगर कोई उपयोगकर्ता स्थानीय रूप से पृष्ठ को सहेजना चुनता है, तो आप सभी को छोड़ दिया जाता है, जो एम्बेड किए गए <meta>टैग हैं। इसीलिए आम तौर पर महत्वपूर्ण हेडर को <meta>टैग के रूप में दोहराने के लिए यह एक अच्छा अभ्यास है ।
राविलोव २३'१

1

जब तक इसे "एज" पर सेट किया जाता है तब तक यह HTML5 के रूप में मान्य होता है, और मुझे बताया गया है कि यह केवल IE को पृष्ठ को फिर से प्रस्तुत करने का कारण बनता है यदि साइट पहले से ही इसे संगतता मोड में प्रदान कर रही है। फिर भी, इसे सर्वर कॉन्फिगर ( .htaccess, आदि) में डालना प्रत्येक पेज के HTML में डालने से बेहतर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.