使用Internet Explorer的兼容模式的缺点

| 在IE中以兼容模式查看网站有哪些强制措施?假设我们将IE9强制转换为IE8兼容模式? 性能缺点 无法使用任何新的IE9特定功能,例如HTML5 / CSS3 / SVG 为什么? 我们运行的遗留网络应用程序自2000年开始开发,因此要与Chrome,Opera,Firefox,IE6 / 7/8兼容,这是一个混乱的局面,现在我们决定将IE9添加到列表中。但是,对于IE9,我们遇到了打印问题,“权限拒绝” JavaScript错误(可能与跨框架JavaScript调用有关)以及下一个问题-简单的解决方法是强制IE9充当IE8,然后一切正常。但我仍然不确定这是否可行...     
已邀请:
  首先,我们的应用是公共站点(针对我们的客户) 您有一个于2000年开发的公共网站,它无法在现代浏览器上运行吗?弃用或重写它。 请勿破解您的代码以支持现代浏览器,该网站显然编写得很差,并且不适用于标准。你无法摆脱这个。 可以避免这种不兼容性的唯一地方是Intranet应用程序,即使如此,您也应该简单地声明“它在浏览器X上有效,并与之兼容”。 您不能对面向公众的客户这么说。我的意思是,您可以尝试,但会失去竞争对手的乐趣。 重新开发您的网站以使其符合W3C HTML / CSS标准和ES5标准,并且它将完全面向未来(几年)。 las,网络的运作方式是不推荐使用5年以上的产品。因此,要么每5年重写一次,要么退出网络业务。 在实际使用兼容模式方面,请不要这样做。 IE6-8是可怕的引擎,应避免像瘟疫一样避免使用。如果使用它们,则无法编写面向未来的符合标准的代码。 您的代码需要符合标准,并且您应该修复/填充/修补那些浏览器未实现标准的浏览器特定的错误。     
您不能说您已经在IE6 / 7/8/9中进行了测试,直到您已经在那些不同的版本中进行了测试。模拟测试环境与使用测试环境不同。据我所知,IE7 / 8兼容模式是较旧的渲染引擎,而不是整体的底层浏览器,错误以及全部。它是封闭源代码,因此您永远不会知道。 转换Microsoft \的免费版本以将用于跨浏览器测试的虚拟磁盘映像下载为Virtualbox映像,并将它们放在仅运行Virtualbox的计算机上。一台旧计算机可以运行,无头运行VM,然后通过远程桌面访问它们。这样,您将能够在所有浏览器中进行测试,而不会为您的计算机增加MS / Spyware的负担。     
我相信您的系统管理员可以使用组策略编辑器将IE设置为所有Intranet通信的兼容模式。从现在开始,您创建的任何站点都可以,您可以添加一个meta标签以强制IE9本地呈现并使用所有较新的功能... 我必须在标头中使用以下doctype和meta标签在当前项目中执行此操作:
<!DOCTYPE HTML >

<meta http-equiv=\"X-UA-Compatible\" content=\"IE=100\" />
    
MS引入了兼容模式,这种模式为人们提供了一些升级应用程序的机会,而不是长期使用。 AFAIU。 如果您希望您的应用程序与IE9兼容,则必须对其进行更改。如果您要保持IE6-9兼容性,那么您将面临真正的挑战,并且应考虑这是否确实可行-本质上,您至少需要2套不同的html集。这对您来说实用吗? IE9兼容模式与IE9和IE8的形式不同-它从这两者中汲取了一些位。因此,您需要对兼容模式版本进行全面测试,并确保它与此保持兼容。 因此,在回答这个问题时,缺点是您与IE9不兼容,并且有危险,当IE10发布时,您的代码将不会在任何模式下与之冲突。您正在努力进行兼容性测试,而无需提供将来的更改。从长远来看,您将做得更好,以使您的代码与IE9兼容。另外,您向客户传达的信息是您的代码库不再兼容很长时间。除非您与他们谈论返工,否则这确实是负面的。 但是,听起来您的整个代码都需要重做,以免忘记IE6并为现代工作的浏览器编写。在出现这种情况之前使用兼容模式可能没问题。如果您这样做-并告诉您的客户-那么保持兼容模式是可行的。     
使用兼容模式不会导致浏览器使用旧版本IE中存在的JavaScript引擎。 我的意思是它将使用IE9引擎运行任何JavaScript代码。当调试旧产品IE7 / 8有问题时,这对我们来说是个问题。     

要回复问题请先登录注册