なぜX-UA互換の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必要ですか?

回答:


152

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

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

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

それがそれを使用しないことを納得させる十分な理由ではなかった場合、Microsoftが、IE が存在する場合、IE8以上は既に標準モードで自動的にレンダリングすると述べていることを考慮してください。<!DOCTYPEそれでもさらに意味てください。

IEがどのドキュメントモードを使用するかを決定するためのフローを確認できます。

ここに画像の説明を入力してください ここに画像の説明を入力してください

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

Microsoft自身の「X-UA-Compatible」メタタグを使用してはならないさらに多くの理由(強調は私のもの):

Internet ExplorerがX-UA互換のMETAタグを検出すると、指定されたバージョンのエンジンを使用してやり直します。ブラウザはコンテンツの分析を停止して再開する必要があるため、これはパフォーマンスへの影響です。

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

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

これは、一時的な使用のみを目的として設計されました。

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

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

2016年1月12日以降、サポートされているオペレーティングシステムで利用できる最新バージョンのInternet Explorerのみが、テクニカルサポートとセキュリティアップデートを受け取ります。Internet Explorer 11Internet Explorerの最後のバージョンであり、Windows 7、Windows 8.1、およびWindows 10でのセキュリティ更新、互換性修正、およびテクニカルサポートを引き続き受信します。

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

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

要するに、このタグはその日を迎えました。


17
これらのフローチャートは素晴らしいです。
bennettp123 2014年

9
今日(2015年10月16日)の時点で、IE11の互換ボタンがなくなったのは事実ですが、[設定]メニューで有効にできるため、可能性として存在しています。私たちのWebベースのソフトウェアは、互換モードが機能する必要があるレガシーシステムを備えた企業イントラネットで使用されているため、今日使用しています。ただし、HTTPヘッダーに関するヒント、ありがとうございます。
Doug Johnson

1
IE11で互換表示を有効にすることは依然として可能であり、企業クライアントはそれを行っているので、ヘッダー/タグは依然として有用です。HTTPヘッダーの方が優れている理由はわかりますが、タグがDOMの最初にある場合、害はほとんどありません。また、Edgeモードで開始されなかったブラウザーでのみ問題があります。互換性ビューで立ち往生している不定期のユーザーのための規定として、タグを使用するのは悪い習慣ではないと思います(<head>の上部にあります)。
トムBoutell

2
@ChuckLeButtまたは、管理者がグループポリシーを使用して「管理」している。それでも、それをオーバーライドする方法を持つことが私たちにとって最大の勝利であった企業の設定では、非常に重要です。
Tom Boutell 2017年

2
@ChuckLeButt私はあなたの要点を理解し、それに矛盾するwindows-fuを持っていません...それでも、クライアントは、IE11が全面的に互換モードであると私たちに言った。彼らがどうやってそれを手に入れたのか、私たちと共有された知識は本当になかった。彼らが実際にずっとそれを明示的なリストに載せていた可能性があります。
Tom Boutell

18

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


うん、それは有効な使用法のように見えますが、そのような状況では、おそらくサーバー設定またはサイトのヘッダーに配置したいでしょうか?stackoverflow.com/a/9338959/199700
Chuck Le Butt

1
また、Microsoftが互換性ビューを廃止することにより一部変更が発生しました。ローカルイントラネットに加えて、ドメインに多数のサブドメインとアプリケーションがある場合、サブドメインの互換表示を追加すると、ドメイン全体に適用されます(特定のサブドメインにのみ適用される前)。したがって、それを必要とする可能性のあるアプリケーションが1つでもある場合は、サポートの問題を回避するために、他のすべてのアプリケーションに対してこれを行う必要があります。
キルケニー2015

@ChuckLeButt、ネットワーク上にある限りヘッダーは有効ですが、ユーザーがページをローカルに保存することを選択した場合、残っているのは埋め込み<meta>タグだけです。そのため、一般的に重要なヘッダーも<meta>タグとして複製することをお勧めします。
ravilov

1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.