web-dev-qa-db-ja.com

なぜX-UA-Compatible IE = Edgeを使用するのですか?

最近いくつかのオンラインコースを受講しましたが、デフォルトで次のメタタグをドキュメントの上部に追加するインストラクターがいます。

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

これは、<meta charset="UTF-8">と同様に重要かつ有用であると考えられているようです。

しかし、なぜ?

MicrosoftのModern.ieドキュメント によれば、「Internet Explorerが最新のエンジンを使用することを保証する」ことが「ベストプラクティス」です。わかりました、結構です。

ただし、 MSDNのフロー図 に従うと、 `X-UA-Compatible情報のないドキュメントがユーザーの「互換表示」設定に転送されること、および ifthat'sが設定されていない場合は、!DOCTYPE宣言に従ってください

言い換えると、ユーザーに互換表示設定が設定されていない限り、 IEは!DOCTYPEに従って、レンダリングにブラウザーの最新の標準モードを使用します ... X-UA-Compatible IE=Edgeステートメントは不要ですまったく。

MSDNが言うように:「 HTML5ドキュメントタイプ宣言を使用して、エッジモードを有効にします "。

では、どのような状況でX-UA-Compatible IE=Edgeが必要ですか?

82
Chuck Le Butt

@Davidの回答が指摘しているように、「ローカルイントラネット」ゾーンでサイトをホストしている場合を除き、Webページに<meta http-equiv="X-UA-Compatible" content="IE=Edge">を含める理由はほとんどありません。また、( Microsoftのベストプラクティス推奨事項 )HTMLに含める理由はまったくありません。 (HTML自体ではなく、サーバー構成またはサイトヘッダーに配置する必要があります。)

プロジェクトでX-UA-Compatibleの使用を検討している場合、互換表示はIE8、9、10にのみ影響することに注意してください。IE8でのみ導入され、IE11では無効になりました。

また、IE11は 現時点でIEの公式にサポートされている唯一のバージョン であることにも注意してください。すべての古いバージョンは安全でないと見なされる必要があります。

それを使用しないように説得する十分な理由ではなかった場合、Microsoftが IE8以降は<!DOCTYPEが存在する場合に標準モードで既に自動的にレンダリングする であり、さらに無意味。

使用するドキュメントモードを決定するためにIEが取るフローを自分で確認できます。

enter image description hereenter image description here

ご覧のとおり、X-UA-CompatibleメタタグまたはHTTPヘッダーが存在しない場合、ユーザーの「互換表示」設定を確認します。ユーザーがWebサイトに何も持っていない場合、IEは<!DOCTYPE宣言の存在を確認します。見つかった場合は、自動的に最新の標準モード(別名「EmulateIEx」)が使用されます。そうでない場合は、Quirksモードに戻ります。

Microsoft自身の "X-UA-Compatible"メタタグを使用するべきではない理由(エンファシスマイニング):

Internet Explorerは、X-UA-Compatible METAタグを検出すると、指定されたバージョンのエンジンを使用して最初からやり直します。 これはパフォーマンスヒットです。ブラウザはコンテンツの分析を停止して再起動する必要があるためです。

つまり、最初のページのレンダリングが遅くなります

X-UA-Compatibleディレクティブは、アプリケーションの更新が行われている間、アプリケーションが最新のInternet Explorerバージョンで動作できるようにするツールです

これは、一時的な使用のためにのみ設計されました。

ベストプラクティスは、X-UA互換のHTTPヘッダーです。応答ヘッダーにディレクティブを追加すると、コンテンツの解析を開始する前に使用するエンジンをInternet Explorerに指示します。これは、Webサイトのサーバーで構成する必要があります。

つまり、絶対に必要な場合は X-UA-Compatibleを実装するより良い方法 があります。

2016年1月12日から、サポートされているオペレーティングシステムで利用可能なInternet Explorerの最新バージョンのみが、テクニカルサポートとセキュリティ更新プログラムを受け取ります。 Internet Explorer 11はInternet Explorerの最後のバージョンであり、Windows 7、Windows 8.1およびウインドウズ10

IE11は唯一の IEの公式にサポートされているバージョン です。

HTMLにX-UA-Compatibleメタタグを含める唯一の理由は、WebサイトのIE8、9、10のユーザーの「互換表示」設定を上書きすることです。ほとんどすべての場合、ユーザーはこれらの設定を変更していないので(なぜそうするのですか?)、これらのブラウザーはもうサポートされていません。

要するに、このタグにはその日がありました。

136
Chuck Le Butt

ユーザーが「ローカルイントラネット」ゾーン(企業イントラネットなど)にあるページを閲覧している場合、「互換表示」はデフォルトでオンになっています。これは、「X-UA-Compatible」を使用してIEに最新のエンジンを強制的に使用させたときです。

18
David

「Edge」に設定されている限り、HTML5として検証され、サイトが既に互換モードでレンダリングしている場合にのみ、IEがページを再レンダリングします。それでも、サーバー構成(.htaccessなど)に配置する方が、各ページのHTMLを配置するよりも優れています。

1

Henri Sivonenは、ブラウザがどのようにレンダリングモードを選択したかについて、非常に役立つリファレンスを作成しました。ここですべて読むことができます: https://hsivonen.fi/doctype/

0
JulienW