为什么再使用X-UA兼容的IE = Edge?

时间:2014-10-13 18:51:30

标签: internet-explorer x-ua-compatible

我最近参加了几个在线课程,我仍然看到一些教师默认在文档的顶部添加以下元标记:

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

这种想法似乎与<meta charset="UTF-8">一样重要且有用。

但为什么?

根据Microsoft's Modern.ie documentation它的最佳做法&#34;其中&#34;确保Internet Explorer使用最新的引擎&#34;。好的,公平的。

但是,如果您按照the flow diagram on MSDN,它会清楚地显示没有“X-UA兼容信息”的文档会转发给用户&#34;兼容性视图&#34;偏好和if that's not set then just follow the !DOCTYPE declaration

换句话说,除非用户有适当的兼容性视图设置,IE will just follow your !DOCTYPE and use the latest standards mode of your browser for rendering anyway ...根本不需要X-UA-Compatible IE=Edge声明。

正如MSDN所说:&#34; Use the HTML5 document type declaration to enable edge mode&#34;。

那么在什么情况下需要X-UA-Compatible IE=Edge

4 个答案:

答案 0 :(得分:133)

@ David的回答指出,除非您在&#34;本地Intranet&#34;区域,没有理由在您的网页中加入<meta http-equiv="X-UA-Compatible" content="IE=edge">,并且(根据Microsoft's best practice recommendations)绝对没有理由将其包含在HTML中。 (您应将其放在服务器配置或网站标题中 - 而不是放在HTML本身中。)

如果您考虑在项目中的任何位置使用X-UA-Compatible,您应该记住兼容性视图仅影响IE8,9和10.它仅在IE8中引入并在IE11中被禁用。

还要注意IE11是the only officially supported version of IE at this time。所有旧版本都应该被认为是不安全的。

如果这还不足以说服您不要使用它,请考虑Microsoft声明IE8 and above already automatically render in Standards Mode when a <!DOCTYPE is present,使其更加毫无意义。

您可以自己查看IE用于决定使用哪种文档模式的流程:

enter image description here enter image description here

如您所见,如果不存在X-UA-Compatible元标记或HTTP标头,则会检查用户&#34;兼容性视图&#34;设置。如果用户没有任何网站,IE会检查是否存在<!DOCTYPE声明。如果它找到一个,它会自动使用最新的标准模式(又名&#34; EmulateIEx&#34;)。如果它没有,它将恢复为Quirks模式。

为什么你不应该使用&#34; X-UA-Compatible&#34;微软自己的元标记(强调我的):

  

当Internet Explorer遇到兼容X-UA的META标记时,它会使用指定版本的引擎重新启动。 这是性能损失,因为浏览器必须停止并重新开始分析内容。

换句话说,它会减慢初始页面渲染速度

  

X-UA-Compatible指令是一种工具,允许应用程序在对应用程序进行更新时使用最新的Internet Explorer版本

它只是为临时使用而设计的。

  

最佳做法是支持X-UA的HTTP标头。将指令添加到响应标头会告诉Internet Explorer在解析内容之前要使用哪个引擎。这必须在网站的服务器中配置。

换句话说,如果您绝对需要它,那就是better ways of implementing X-UA-Compatible

  

从2016年1月12日开始,只有支持的操作系统可用的最新版Internet Explorer才会获得技术支持和安全更新。 Internet Explorer 11 是Internet Explorer的最新版本,并将继续在 Windows 7,Windows 8.1和Windows 10 上接收安全更新,兼容性修补程序和技术支持。

IE11是唯一的officially supported version of IE

在HTML中包含X-UA-Compatible元标记的唯一原因是覆盖用户&#34;兼容性视图&#34; IE8,9和10中的设置为您的网站。在几乎所有情况下,用户都不会更改这些设置(为什么会这样?),现在甚至不再支持这些浏览器了。

简而言之:这个标签已经过了一天。

答案 1 :(得分:17)

如果用户正在浏览位于“本地Intranet”区域中的页面(例如在公司Intranet上),则默认情况下会打开“兼容性视图”。这是我使用“X-UA-Compatible”强制IE使用最新引擎的时候。

答案 2 :(得分:1)

只要设置为“Edge”,它就会验证为HTML5,并且我告诉它只会导致IE重新呈现页面,如果该网站已经在兼容模式下呈现它。尽管如此,将它放在服务器配置(.htaccess等)中要比放入每页的HTML更好。

答案 3 :(得分:0)

Henri Sivonen就浏览器如何选择渲染模式提供了非常有用的参考。你可以在那里阅读:https://hsivonen.fi/doctype/