Why use X-UA-Compatible IE=Edge anymore?

无人久伴 提交于 2019-11-27 16:56:49

As @David's answer points out, unless you're hosting a site in the "Local Intranet" zone, there is very little reason to include <meta http-equiv="X-UA-Compatible" content="IE=edge"> in your webpages, and (according to Microsoft's best practice recommendations) absolutely no reason to include it in the HTML. (You should place it in your server config or site headers -- not in the HTML itself.)

If you are considering using X-UA-Compatible anywhere in your project, you should remember that Compatibility View only affects IE8, 9 and 10. It was only introduced in IE8 and was disabled in IE11.

Also be aware that IE11 is the only officially supported version of IE at this time. All older versions should be considered insecure.

If that wasn't enough reason to convince you not to use it, consider that Microsoft state that IE8 and above already automatically render in Standards Mode when a <!DOCTYPE is present, making it even more pointless.

You can see for yourself the flow that IE takes to decide what document mode to use:

As you can see, if no X-UA-Compatible meta tag or HTTP header is present, it checks the user's "Compatibility View" settings. If the user doesn't have any for your website, IE then checks for the presence of a <!DOCTYPE declaration. If it finds one it automatically uses the latest Standards Mode (aka "EmulateIEx"). If it doesn't, it reverts to Quirks Mode.

Even more reasons why you shouldn't use the "X-UA-Compatible" meta tag from Microsoft themselves (emphasis mine):

When Internet Explorer encounters the X-UA-Compatible META tag it starts over using the designated version's engine. This is a performance hit because the browser must stop and restart analyzing the content.

In other words, It slows initial page render

The X-UA-Compatible directive is a tool to allow applications to work in the latest Internet Explorer version while updates are made to the application.

It was only ever designed for temporary use.

The best practice is an X-UA-Compatible HTTP Header. Adding the directive to the response header tells Internet Explorer what engine to use before parsing content begins. This must be configured in the web site's server.

In other words, there's better ways of implementing X-UA-Compatible if you absolutely need it.

Starting from 12 January 2016, only the most current version of Internet Explorer available for a supported operating system will receive technical supports and security updates. Internet Explorer 11 is the last version of Internet Explorer, and will continue to receive security updates, compatibility fixes and technical support on Windows 7, Windows 8.1 and Windows 10.

IE11 is the only officially supported version of IE.

The only reason to include the X-UA-Compatible meta tag in your HTML was to override a user's "Compatibility View" settings in IE8, 9 and 10 for your website. In almost every case the user will not have changed these settings (why would they?), and now those browsers are not even supported anymore.

In short: This tag has had its day.

If the user is browsing a page located in the "Local Intranet" zone (such as on a corporate intranet), the "compatibility view" is turned on by default. This is when I have used "X-UA-Compatible" to force IE to use the latest engine.

Michael McGinnis

As long as it is set to “Edge” it validates as HTML5, and I'm told it only causes IE to re-render the page if the site was already rendering it in Compatibility mode. Still, putting it in the server config (.htaccess, etc.) is better than putting in the HTML of each page.

Henri Sivonen made a very useful reference about how browsers chose the rendering mode. You can read it all there: https://hsivonen.fi/doctype/.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!