HTML5 Shim vs. Shiv

时间:2013-01-20 20:41:34

标签: html5 internet-explorer html5shiv

Rails的初学者。

我在我的示例应用程序中编写CSS。我知道有Javascript代码可以帮助浏览器,即Internet Explorer,支持HTML5。

HTML5 Shim和HTML5 Shiv有什么区别?这是值得了解的吗?

http://html5shim.googlecode.com/svn/trunk/html5.js

http://html5shiv.googlecode.com/svn/trunk/html5.js

我的代码,你们都是:

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js">
</script>
<![endif]-->

4 个答案:

答案 0 :(得分:77)

它最初被称为html5-shiv。

Shiv确实不是正确的术语,因为shiv是一个刺刀。

垫片是你用来平衡(或支撑它们)的东西。 如果一张桌子有一条腿太短,你可以用一块木头或一本电话簿来垫片......

所以html5-shim适用于那些希望将html5shiv称为垫片的人。

就差异而言,完全是这样。

有点像polyfill掩盖了功能实现的差异 在北美,Polyfill可能被称为“Spackle”。

答案 1 :(得分:22)

来自http://code.google.com/p/html5shim/

  

shiv或shim?

     

常见问题: html5shim和html5shiv有什么区别?
  答案:没什么,一个人有一个,一个有一个v - 就是这样。

答案 2 :(得分:11)

答案是。

  

shiv一词源自John Resig,被认为曾使用过。{3}}   它的俚语意思是一个尖锐的物体,用作刀状   用于Internet Explorer的武器。知道真相,约翰可能   打算用这个词   shim,其中   计算意味着应用程序兼容性解决方法而不是   纠正他的错误拼写,大多数熟悉互联网的开发人员   Explorer欣赏视觉图像。孩子们,这就是词源。

来自https://github.com/aFarkas/html5shiv

的作者页面

答案 3 :(得分:0)

这可能比您想要的要简单,但对于其他可能会感到困惑的人:

首先,这是Shim的非编程定义:

  

名词:垫圈或薄条材料用于对齐零件,使其合适或减少磨损。

     

动词:楔入(东西)或用垫片填充(空格)。

要了解编程术语中的填充程序,您需要了解IE对于Web开发人员造成的痛苦:

IE是最早的商业化Web浏览器之一。它可能是第一个“免费”可用的。因此,它是在定义浏览器标准(即如何处理html和javascript的定义)之前构建的。

因此,为了使站点和应用程序在IE中正常工作,随着标准的制定,IE无法或(出于垄断原因)不会更新IE(here's a great post with more info about that)。随着时间的流逝,这导致IE与其他浏览器之间出现裂痕。这种裂痕经常出现意外错误,样式差异,并且某些应用程序直接拒绝其用户选择从其他浏览器运行它的选择。

但是,如果要同时为两种类型的浏览器提供产品,则开发人员通常不得不编写两组代码。一个几乎用于所有现代浏览器,另一个用于IE。显然,这种做法使梦up以求。但是,随着时间的流逝,许多JavaScript框架/库开始添加代码来专门解决这些问题。这些代码片段称为垫片。因为他们正在使IE中的代码“合适”

例如,jQuery首次发布时,它比以前的版本(或者只是编写您自己的库)的主要优势在于它可以在所有浏览器(甚至IE)中使用。当时IE仍被大量使用,因此这为开发人员节省了大量时间。但是现在jQuery在版本3上。以前版本之间的主要区别是它不再支持IE。这是因为每个人,甚至包括微软,都已经放弃了IE(Win10的默认浏览器是Edge)。但是,不幸的是,出于安全原因,许多站点和Web应用程序都是专门为IE设计的。即使IE在大多数商业应用程序中已经取代了Dodo,但它仍提供了其他浏览器所没有的安全功能(但它们正在迅速追赶)。即使这样做,更新这些应用程序的成本通常也太高而无法证明是合理的。

这基本上意味着许多人仍然被迫使用IE,因此仍然需要这些填充。