Neden artık X-UA-Uyumlu IE = Edge kullanmalı?


96

Son zamanlarda birkaç çevrimiçi kurs aldım ve hala bazı eğitmenlerin varsayılan olarak belgelerinin en üstüne aşağıdaki meta etiketi eklediklerini görüyorum:

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

Düşünce, bunun en az onun kadar önemli ve yararlı olduğu gibi görünüyor <meta charset="UTF-8">.

Ama neden?

Microsoft'un Modern.ie belgelerine göre, "Internet Explorer'ın en son motoru kullanmasını sağlayan" "en iyi uygulama" dır . Tamam, yeterince adil.

Ancak, izlerseniz MSDN'deki akış diyagramı açıkça gösterir o olmadan belge `X-UA Uyumlu bilgiler kullanıcının "Uyumluluk Görünümü" tercihlerine iletilir ve eğer o oluyor ayarlanmamış sonra sadece! DOCTYPE bildirimini takip edin .

Diğer bir deyişle, kullanıcı bazı Uyumluluk Görünümü ayarlarına sahip olmadıkça, IE sadece! DOCTYPE'ınızı takip edecek ve yine de görüntüleme için tarayıcınızın en son standartlar modunu kullanacaktır ... Hiçbir X-UA-Compatible IE=Edgeifadeye gerek yok .

MSDN'nin dediği gibi: " Kenar modunu etkinleştirmek için HTML5 belge türü bildirimini kullanın ".

Peki hangi durumlarda X-UA-Compatible IE=Edgegereklidir?

Yanıtlar:


154

@ David'in cevabının işaret ettiği gibi, "Yerel İntranet" bölgesinde bir site barındırmıyorsanız <meta http-equiv="X-UA-Compatible" content="IE=edge">, web sayfalarınıza eklemeniz için çok az neden vardır ve ( Microsoft'un en iyi uygulama önerilerine göre ) siteyi HTML. (Bunu, HTML'nin kendisine değil sunucu yapılandırmanıza veya site başlıklarına yerleştirmelisiniz.)

X-UA-CompatibleProjenizde herhangi bir yeri kullanmayı düşünüyorsanız , Uyumluluk Görünümü'nün yalnızca IE8, 9 ve 10'u etkilediğini unutmamalısınız. Yalnızca IE8'de tanıtıldı ve IE11'de devre dışı bırakıldı.

Ayrıca IE11'in şu anda IE'nin resmi olarak desteklenen tek sürümü olduğunu da unutmayın . Tüm eski sürümler güvensiz kabul edilmelidir.

Bu, sizi onu kullanmamanıza ikna etmek için yeterli bir neden değilse, Microsoft'un IE8 ve üstünün <!DOCTYPE, bir mevcut olduğunda Standartlar Modunda otomatik olarak işlediğini ve bu da onu daha da anlamsız hale getirdiğini söylediğini düşünün .

IE'nin hangi belge modunun kullanılacağına karar vermek için aldığı akışı kendiniz görebilirsiniz:

görüntü açıklamasını buraya girin görüntü açıklamasını buraya girin

Gördüğünüz gibi, X-UA-Compatiblemeta etiket veya HTTP başlığı yoksa, kullanıcının "Uyumluluk Görünümü" ayarlarını kontrol eder. Kullanıcının web siteniz için hiçbiri yoksa, IE bir <!DOCTYPEbildirimin varlığını kontrol eder . Eğer bir tane bulursa, otomatik olarak en son Standartlar Modunu kullanır ("EmulateIEx" olarak da bilinir). Olmazsa, Quirks Moduna geri döner.

Microsoft'un kendisinden "X-UA-Uyumlu" meta etiketini kullanmamanız için daha fazla neden (vurgu benim):

Internet Explorer, X-UA-Uyumlu META etiketiyle karşılaştığında, belirlenen sürümün motorunu kullanarak yeniden başlar. Tarayıcının içeriği analiz etmeyi durdurması ve yeniden başlatması gerektiğinden , bu bir performans vuruşudur .

Başka bir deyişle, ilk sayfanın oluşturulmasını yavaşlatır

X-UA-Compatible yönergesi, uygulamada güncellemeler yapılırken uygulamaların en son Internet Explorer sürümünde çalışmasına izin veren bir araçtır .

Sadece geçici kullanım için tasarlandı.

En iyi uygulama, X-UA-Uyumlu bir HTTP Üstbilgisidir . Yönergenin yanıt başlığına eklenmesi, Internet Explorer'a içeriği ayrıştırma başlamadan önce hangi motoru kullanacağını söyler. Bu, web sitesinin sunucusunda yapılandırılmalıdır.

Diğer bir deyişle, kesinlikle ihtiyacınız varsa, X-UA-Uyumlu uygulamanın daha iyi yolları vardır .

12 Ocak 2016 tarihinden itibaren, desteklenen bir işletim sistemi için yalnızca Internet Explorer'ın en güncel sürümü teknik destek ve güvenlik güncellemelerini alacaktır. Internet Explorer 11 , Internet Explorer'ın son sürümüdür ve Windows 7, Windows 8.1 ve Windows 10'da güvenlik güncellemelerini, uyumluluk düzeltmelerini ve teknik desteği almaya devam edecektir .

IE11, IE'nin resmi olarak desteklenen tek sürümüdür .

X-UA-CompatibleHTML'nize meta etiket eklemenin tek nedeni , web siteniz için IE8, 9 ve 10'da bir kullanıcının "Uyumluluk Görünümü" ayarlarını geçersiz kılmaktı. Neredeyse her durumda, kullanıcı bu ayarları değiştirmeyecek (neden yapsınlar?) Ve şimdi bu tarayıcılar artık desteklenmiyor bile.

Kısaca: Bu etiket gününü doldurdu.


17
Bu akış şemaları harika.
bennettp123

9
Bugün (10/16/2015) itibariyle sadece bir not, IE11'deki uyum düğmesinin gittiği doğrudur, ancak yine de Ayarlar menüsünde etkinleştirilebilir, bu nedenle hala bir olasılık olarak var. Bugün kullanıyoruz çünkü web tabanlı yazılımımız, uyumluluk modunun çalışması için eski sistemlere sahip kurumsal intranetlerde kullanılıyor, bu yüzden bunu aşmamız gerekiyor. HTTP başlığında harika bir ipucu, bunun için teşekkürler!
Doug Johnson

1
IE11'de uyumluluk görünümünü etkinleştirmek hala mümkün olduğundan ve kurumsal istemciler bunu yaptığından, başlık / etiket hala kullanışlıdır. HTTP başlığının neden daha üstün olduğunu anlayabiliyorum, ancak etiket DOM'un en başındaysa çok az zarar verilir ve yalnızca Edge modunda başlamayan tarayıcılarda olur. Yalnızca uyumluluk görünümünde kalan ara sıra kullanıcılar için bir hüküm olarak, etiketi kullanmanın kötü bir uygulama olduğunu düşünmüyorum (<head> 'in hemen üstünde).
Tom Boutell

2
@ChuckLeButt Veya yöneticileri bunu Grup İlkesi aracılığıyla "onlar için" yaptı. Kurumsal ortamlarda hala çok önemli bir şey, bu bizim için onu geçersiz kılmanın bir yolunu bulmanın en büyük kazanç olduğu yer.
Tom Boutell

2
@ChuckLeButt Demek istediğini anlıyorum ve bununla çelişecek windows-fu'ya sahip değilim ... ve yine de, müşterimiz bize IE11'in pano genelinde uyum modunda olduğunu söyledi; nasıl elde ettiklerini gerçekten bizimle paylaşılmamıştı. Aslında başından beri açık bir listede bulundurmaları mümkündür.
Tom Boutell

18

Kullanıcı "Yerel İntranet" bölgesinde (kurumsal intranet gibi) bulunan bir sayfaya göz atıyorsa, "uyumluluk görünümü" varsayılan olarak etkindir. Bu, IE'yi en yeni motoru kullanmaya zorlamak için "X-UA-Uyumlu" kullandığım zamandı.


Evet, bu geçerli bir kullanım gibi görünüyor, ancak bu durumda muhtemelen onu sunucu yapılandırmasına veya yine de sitenin başlıklarına koymak istersiniz? stackoverflow.com/a/9338959/199700
Chuck Le Butt

1
Microsoft'un Uyumluluk Görünümü'nü biraz kaldırmasının neden olduğu bir değişiklik de var. Yerel İntranet'e ek olarak, bir etki alanında çok sayıda alt etki alanı ve uygulama varsa, bir alt etki alanı için Uyumluluk Görünümü eklendiğinde, artık TÜM etki alanına uygulanır (yalnızca belirli alt etki alanına uygulanmadan önce). Bu nedenle, onu gerektirebilecek tek bir uygulamanız bile varsa, destek sorunlarından kaçınmak için bunu diğerleri için yapmalısınız.
kilkenny

@ChuckLeButt, başlıklar ağda olduğunuz sürece iyidir, ancak bir kullanıcı sayfayı yerel olarak kaydetmeyi seçerse, kalan tek şey gömülü <meta>etiketlerdir. Bu nedenle, önemli başlıkları <meta>etiket olarak çoğaltmak genellikle iyi bir uygulamadır .
ravilov

1

"Edge" olarak ayarlandığı sürece HTML5 olarak doğrular ve bana sadece site zaten Uyumluluk modunda oluyorsa IE'nin sayfayı yeniden oluşturmasına neden olduğu söylendi. Yine de, bunu sunucu yapılandırmasına ( .htaccessvb.) Koymak, her sayfanın HTML'sini koymaktan daha iyidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.