我最近参加了几个在线课程,我仍然看到一些教师默认在文档的顶部添加以下元标记:
<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
?
答案 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用于决定使用哪种文档模式的流程:
如您所见,如果不存在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/。