为什么Internet Explorer与其他浏览器存在如此多的不兼容性?


10

Internet Explorer具有许多其他浏览器所没有的专有功能,以及与标准的许多不兼容。有谁知道这些不兼容的原因是什么?

例如:我使用Crossrider框架开发了一个浏览器扩展。该扩展程序可以与[Windows | Windows Server 2003]的所有组合一起很好地工作。Mac OS | Linux]和[Chrome | 火狐],但它不与IE由于IE手柄的工作$(window).height()$(window).scrollTop()有一点不同。

是否有对此情况的已知透彻分析,或与内部人士会面以查明原因?是企业文化,设计过程,质量保证缺陷还是一些可怕的未知遗产?


4
最可能是向后兼容。IE是其中最古老的。
Manoj R

20
我想这是微软的文化,它不遵循普遍接受的标准来尝试创建自己的标准和自己的小世界。他们在从网络协议到软件开发环境的所有事情中都有这样做的历史。
maple_shaft

16
@ManojR IE不是最古老的:en.wikipedia.org/wiki/History_of_the_web_browser
保罗

14

10
大。我花了15分钟的时间来解释MS如何选择通过ActiveX而不是CSS / HTML / JS进行研发,从而选择通过ActiveX与IE进行紧密的OS集成,但是当我回到粘贴在Magnum Opus中时才发现问题已经关闭: (
Graham

Answers:


23

为什么Microsoft®InternetExplorer®与其他浏览器和已发布的标准不兼容?

  1. 添加其他浏览器没有的功能
  2. 当程序员编写使用仅IE功能的网页时,该代码将无法在其他浏览器上运行。这鼓励最终用户在IE中查看这些网站(因此,更多的人使用IE,并且由于它仅在Windows上运行,因此更多的人使用Windows)。
  3. Microsoft工具(FrontPage是最著名的工具)倾向于生成仅在IE上运行或在IE上运行最佳的代码。尽管上面提到的是#2,但它值得一提,因为下一个要在该网站或Web应用程序上工作的开发人员现在必须使用最初使用它的Microsoft技术,或者必须重写整个项目。不同的技术。

公司Intranet特别容易受到此策略的影响,因为它们提供了一个环境,其中所有用户都在同一浏览器上(直到出现新版本)。另外,如果网站不是面向客户的,那么即使支持多个浏览器的成本很小,也就没有预算。随着时间的流逝,公司的旧版Intranet站点会阻止整个公司放弃IE(甚至是特定版本的IE)使用其他浏览器。

微软的方法是一把双刃剑。一方面,它产生了XML / HTTP异步请求功能,这使得AJAX成为可能(以及其他积极的创新),而其他浏览器很快就复制了该功能。但是,微软最终也生产了彼此不兼容的IE版本,从而使那些在微软计划中发挥最大作用的开发人员受到了极大的打击。

我最喜欢的版本内IE不兼容示例是Micrsoft自己的IE6 Countdown活动,该活动鼓励人们不要使用自己的浏览器。从理论上讲,微软可以鼓励人们升级到最新版本的IE,而其他大喊“ IE6 Must Die”的人则更可能鼓励用户使用其他品牌的浏览器代替IE。

简而言之,这是微软相当成功的市场主导策略,有时会伤害并有时会帮助整个行业。对于我自己,我尝试仅生成经过验证的,符合标准的HTML,该HTML在具有2%或更多市场份额(加上IE的最新3个版本)的任何浏览器的最新版本中进行测试。


Microsoft和Internet Explorer是Microsoft公司在美国和/或其他国家的注册商标。


2
如果我们谈论IE6,我会同意其中的大多数。那9及以后呢?
Billy ONeal

11

与往常一样,这个问题是激励措施之一。如果您需要知道为什么会真正发生某些事情(而不是人们声称或希望相信的事情),请遵循金钱。

想象一下您在关键技术(个人计算机)中拥有舒适的市场地位的情况。网络的价值在很大程度上取决于其规模,因此您希望能够使用您的产品吸引尽可能多的用户。由于他们很可能已经在使用您的系统,因此有必要引入新功能并仅花精力与您自己的产品向后兼容。与竞争对手产品的兼容性在优先级列表中较低,因为它不会为您自己创造太多的价值潜能。实际上,如果竞争对手的产品能够实现足够的互操作性,甚至有人完全不用您的系统就可以做到,那么您可能会付出代价

请注意,您甚至不需要在这里将开发人员或管理人员置于任何有意识的恶意之中。做自己的事情并推广自己的协议,标准等,而不是为通用协议做贡献,这对于占主导地位的参与者而言只是自然而然的举动,如果没有公众显然不愿授权的非常严格的法律措施,这可能是不可避免的。实际上,我在Microsoft所听到和阅读的有关心态的大部分信息使我相信,他们的大多数人都是真诚诚实的 认为他们的产品是如此出色和卓越,以至于只有令人不快的不满情绪会首先使用其他任何东西,并且如果他们致力于互操作性而不是“创新”很酷的新东西,他们会给忠实的客户带来极大的伤害。

引起疼痛与Web开发者谁必须支持不同的产品仅仅是这种态度的副作用。对我们以外的从业者来说,这似乎很残酷,甚至是邪恶的,但是我怀疑,如果桌子被魔术般地颠倒过来,我们中的许多人也会采取同样的立场。


2

IE造成的悲痛是一个两部分的问题,这两个问题实际上都源于IE赢得了第一次浏览器大战。它曾经是最好,最先进的浏览器,但它们闲置了很长时间,现在正在追赶,但它们却给其他浏览器带来了沉重的负担,因为许多公司在内部网站上投资了数百万美元,这些网站只能在特定版本的IE。如果MS没有在版本之间进行尽可能轻松的过渡,他们将自杀。其次,因为他们赢得了第一次浏览器大战,并且正在接近完全垄断,W3C积极编写了与现有IE功能冲突的标准,以试图在与浏览器相关的范围内保持与标准主体的相关性,并且要感谢遵循这些标准的新型浏览器,工作。


2
您可以用一些可验证的事实支持第二个断言吗?
Bart van Ingen Schenau 2013年

@Bart我怀疑像这样的实际成员所说的东西确实存在,我相信w3c盒模型是他们在某种程度上做到了这一点的很好的证据。
Ryathal

2
在这种情况下,我会犹豫是否将与W3C不兼容的意图归因于此。那么也可能是W3C认为IE符合标准,或者差异很小,以至于IE可以很容易地转换为标准。
Bart van Ingen Schenau 2013年

1
IE是第一次浏览器大战中Netscape的主要竞争对手@Bart,与W3C的兼容性并不明显。直到Mozilla的更高版本和早期的Firefox才出现了合理合规的浏览器。但是这些浏览器的发布日期是IE6。
Billy ONeal

@BillyONeal:谢谢。这更加坚定了我的信念,即除非W3C想要打击那个时代的每个浏览器,否则它都不打算打击IE。
Bart van Ingen Schenau
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.