더 이상 X-UA-Compatible IE = Edge를 사용하는 이유는 무엇입니까?


95

최근에 여러 온라인 과정을 수강했는데 일부 강사가 기본적으로 문서 상단에 다음 메타 태그를 추가하는 것을 볼 수 있습니다.

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

이것이 <meta charset="UTF-8">.

그런데 왜?

Microsoft의 Modern.ie 문서 에 따르면 "Internet Explorer가 최신 엔진을 사용하도록하는" "모범 사례"입니다. 좋습니다.

그러나 따르는 경우 MSDN의 흐름도를 그것을 명확하게 보여줍니다이없는 문서`X-UA 호환 정보는 사용자의 "호환성보기"환경 설정에 전달되며, 경우에 그이있어 설정하지 후 바로!의 DOCTYPE 선언을 따릅니다 .

즉, 사용자가 일부 호환성보기 설정이없는 경우 IE는! DOCTYPE을 따르고 어쨌든 렌더링을 위해 브라우저의 최신 표준 모드를 ​​사용합니다X-UA-Compatible IE=Edge . 설명문이 전혀 필요하지 않습니다 .

MSDN에서 " HTML5 문서 유형 선언을 사용하여 에지 모드 활성화 "라고 말합니다 .

그렇다면 어떤 상황에서 X-UA-Compatible IE=Edge필요합니까?

답변:


153

@David의 답변이 지적했듯이 "로컬 인트라넷"영역에서 사이트를 호스팅하지 않는 한 <meta http-equiv="X-UA-Compatible" content="IE=edge">웹 페이지 에 포함 할 이유가 거의 없으며 ( Microsoft의 모범 사례 권장 사항 에 따라 )이를 포함 할 이유가 전혀 없습니다. HTML. (HTML 자체가 아닌 서버 구성 또는 사이트 헤더에 배치해야합니다.)

X-UA-Compatible프로젝트의 어느 곳에서나 사용 하려는 경우 호환성보기는 IE8, 9 및 10에만 영향을 미친다는 점을 기억해야합니다. IE8에서만 도입되었으며 IE11에서는 비활성화되었습니다.

또한 IE11은 현재 공식적으로 지원되는 유일한 IE 버전입니다 . 모든 이전 버전은 안전하지 않은 것으로 간주되어야합니다.

그것이 당신이 그것을 사용하지 않도록 설득 할 충분한 이유가 아니라면, Microsoft는 IE8 이상이 a <!DOCTYPE가 있을 때 이미 표준 모드에서 자동으로 렌더링되어 더 무의미하게 만든다고 말합니다.

사용할 문서 모드를 결정하기 위해 IE가 취하는 흐름을 직접 확인할 수 있습니다.

여기에 이미지 설명 입력 여기에 이미지 설명 입력

보시다시피 X-UA-Compatible메타 태그 나 HTTP 헤더가 없으면 사용자의 "호환성보기"설정을 확인합니다. 사용자가 웹 사이트에 대한 정보가 없으면 IE는 <!DOCTYPE선언이 있는지 확인합니다 . 하나를 찾으면 자동으로 최신 표준 모드 ( "EmulateIEx"라고도 함)를 사용합니다. 그렇지 않으면 쿼크 모드로 돌아갑니다.

Microsoft 자체의 "X-UA-Compatible"메타 태그를 사용하지 않아야하는 더 많은 이유 (강조) :

Internet Explorer가 X-UA 호환 META 태그를 발견하면 지정된 버전의 엔진을 사용하여 다시 시작됩니다. 이는 브라우저가 콘텐츠 분석을 중지했다가 다시 시작해야하기 때문에 성능 저하 입니다.

즉, 초기 페이지 렌더링 속도가 느려집니다.

X-UA-Compatible 지시문은 응용 프로그램을 업데이트하는 동안 응용 프로그램이 최신 Internet Explorer 버전에서 작동 할 수 있도록하는 도구 입니다.

일시적인 용도로만 설계되었습니다.

가장 좋은 방법은 X-UA 호환 HTTP 헤더 입니다. 응답 헤더에 지시문을 추가하면 Internet Explorer가 콘텐츠 구문 분석을 시작하기 전에 사용할 엔진을 알려줍니다. 이것은 웹 사이트의 서버에서 구성되어야합니다.

즉, 꼭 필요한 경우 X-UA 호환을 구현하는 더 좋은 방법이 있습니다.

2016 년 1 월 12 일부터 지원되는 운영 체제에 사용할 수있는 최신 버전의 Internet Explorer에만 기술 지원 및 보안 업데이트가 제공됩니다. Internet Explorer 11Internet Explorer 의 마지막 버전이며 Windows 7, Windows 8.1 및 Windows 10 에 대한 보안 업데이트, 호환성 수정 및 기술 지원을 계속받습니다 .

IE11은 공식적으로 지원되는 유일한 IE 버전입니다 .

X-UA-CompatibleHTML에 메타 태그 를 포함하는 유일한 이유는 웹 사이트에 대한 IE8, 9 및 10에서 사용자의 "호환성보기"설정을 재정의하기위한 것입니다. 거의 모든 경우에 사용자는 이러한 설정을 변경하지 않았을 것이며 (왜 그렇게했을까요?), 이제 해당 브라우저는 더 이상 지원되지 않습니다.

요컨대 :이 태그는 그날을 보냈습니다.


17
그 플로우 차트는 환상적입니다.
bennettp123 2014

9
참고로 오늘 (2015 년 10 월 16 일) 현재 IE11의 호환 버튼이 사라진 것은 사실이지만 설정 메뉴에서 활성화 할 수 있으므로 여전히 가능성으로 존재합니다. 오늘날 우리는 웹 기반 소프트웨어가 호환 모드가 작동해야하는 레거시 시스템이있는 기업 인트라넷에서 사용되기 때문에이를 사용하고 있습니다. 하지만 HTTP 헤더에 대한 훌륭한 팁, 감사합니다!
Doug Johnson

1
IE11에서 호환성보기를 활성화하는 것이 여전히 가능하고 기업 클라이언트가이를 수행하므로 헤더 / 태그는 여전히 유용합니다. HTTP 헤더가 우월한 이유를 알 수 있지만 태그가 DOM의 맨 처음에 있으면 거의 해를 끼치 지 않으며 Edge 모드에서 시작하지 않은 브라우저에서만 발생합니다. 가끔 호환성보기에 갇혀있는 사용자를위한 조항으로 태그를 사용하는 것은 나쁜 습관이라고 생각하지 않습니다 (<head> 맨 위에 있음).
Tom Boutell 2017

2
@ChuckLeButt 또는 관리자가 그룹 정책을 통해 "대해"작업을 수행했습니다. 우리가 그것을 무시할 수있는 방법을 갖는 것이 가장 큰 승리 인 기업 환경에서 여전히 매우 중요합니다.
Tom Boutell 17.11.

2
@ChuckLeButt 나는 당신의 요점을 보았고 그것에 모순되는 windows-fu가 없습니다 ...하지만 우리 고객은 우리에게 그들이 IE11을 전반적으로 호환 모드로 가지고 있다고 말했습니다. 그들이 그것을 어떻게 얻었는지 우리와 공유 된 지식이 없었습니다. 그들이 실제로 그것을 명시적인 목록에 올렸을 가능성이 있습니다.
Tom Boutell 2017

18

사용자가 "로컬 인트라넷"영역 (예 : 회사 인트라넷)에있는 페이지를 탐색하는 경우 "호환성보기"가 기본적으로 설정되어 있습니다. IE가 최신 엔진을 사용하도록 강제하기 위해 "X-UA-Compatible"을 사용한 경우입니다.


네, 유효한 사용처럼 보이지만 그 상황에서 아마도 서버 구성이나 사이트의 헤더에 넣고 싶을 것입니다. stackoverflow.com/a/9338959/199700
Chuck Le Butt

1
또한 Microsoft에서 호환성보기를 약간 사용하지 않기 때문에 부분적으로 변경되었습니다. 로컬 인트라넷 외에도 도메인에 많은 하위 도메인 및 응용 프로그램이있는 경우 하위 도메인에 대한 호환성보기를 추가하면 현재 전체 도메인에 적용됩니다 (특정 하위 도메인에만 적용되기 전). 따라서 필요할 수있는 응용 프로그램이 하나만있는 경우 다른 모든 응용 프로그램에 대해이 작업을 수행하여 지원 문제를 방지해야합니다.
kilkenny

@ChuckLeButt, 헤더는 네트워크에있는 동안에는 좋지만 사용자가 페이지를 로컬에 저장하기로 선택한 경우 남은 것은 포함 된 <meta>태그뿐입니다. 그렇기 때문에 중요한 헤더도 <meta>태그로 복제하는 것이 일반적으로 좋은 방법 입니다.
ravilov

1

"Edge"로 설정되어있는 한 HTML5로 유효성을 검사하고 사이트가 이미 호환 모드에서 렌더링하고있는 경우에만 IE가 페이지를 다시 렌더링하도록합니다. 그래도 서버 설정 ( .htaccess등)에 넣는 것이 각 페이지의 HTML을 넣는 것보다 낫습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.