HTML5 Shim与Shiv的区别

51

两者都是 /*! HTML5 Shiv vpre3.6 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed - user824425
3
“答案”:没什么区别,一个有一个“m”,一个有一个“v” - 就是这样。 - Mohammed H
1
html5shim在bower中不存在。 - Virgili Garcia
3
值得一提的是,虽然与问题无直接关系,但从https://dev59.com/r2HVa4cB1Zd3GeqPkTTo可以看出,从您的站点调用代码仓库是不正确的,原因包括它没有进行缩小处理或使用gzip进行压缩,并且具有非常短的TTL。相反,请使用https://cdnjs.com/libraries/html5shiv来查找正确的CDN托管副本。 - Joel Deutscher
1
Paul Irish的详尽解释和时间轴 - chb
4个回答

82

它最初被称为html5-shiv。

Shiv并不是正确的术语,因为shive是一种刺杀工具。

Shim是您用来使事物平稳(或支撑)的东西。 如果桌子有一条腿太短,您可能会用一块木头或电话簿来垫它……

所以html5-shim是为那些希望将html5shiv称为shim的人准备的。

就差别而言,以上就是全部内容了。

就像polyfill覆盖功能实现中的差异一样。
在北美,Polyfill可能被称为"Spackle"。


7
谢谢!学习新概念时,很难知道什么值得学习。 - owlstone
9
没有人会想要刺Internet Explorer,对吧?;-) - Henry Rusted
3
@HenryRusted可能在想象一幅大规模场景,在切换场景时整个帮派被刺伤...凶手离开,镜头拉远,这时出现了IE5.5、IE6、IE7、IE8、IE9、IE10、Android 2.3、大多数移动版Safari......破坏Web的场景。 - Norguard
所以,shiv 是用来 @#@$ing 某人的,而 shim 则是微调或填补间隙的工具。Shiv 实际上意味着会做出一些恶作剧。 - mckenzm

26

来源于http://code.google.com/p/html5shim/

shiv 还是 shim?

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


14
答案是:

术语“shiv”起源于John Resig,他被认为使用了这个词作为俚语意义上的一个尖锐物体,用作类似刀子的武器,专门用于Internet Explorer。事实上,约翰可能想使用计算机领域中的shim这个词,它是指应用程序兼容性解决方案。与其纠正拼写错误,大多数熟悉Internet Explorer的开发人员都欣赏这个视觉形象。孩子们,这就是词源学。

来自作者页面:https://github.com/aFarkas/html5shiv


0

这可能比你想象的要简单,但对于其他可能感到困惑的人来说:

首先,这里是一个非编程定义的垫片:

名词:一种垫圈或薄片材料,用于对齐零件,使它们适合或减少磨损。

动词:用垫片楔住(某物)或填补(空间)。

要理解编程术语中的垫片,您需要了解IE对Web开发人员的影响:

IE是最早商业可用的Web浏览器之一。它可能是第一个“免费”提供的浏览器。因此,在浏览器标准被定义之前构建了它,即如何处理HTML和JavaScript的定义。

因此,为了使站点和应用程序在IE中正常工作,随着标准的制定,IE无法或(出于垄断原因)不会更新IE(这里有更多信息的绝佳文章)。这导致IE与其他浏览器之间产生了分歧,并随着时间的推移而增加。这种分歧经常表现为意外错误、样式差异以及一些应用程序直接拒绝用户从其他浏览器运行它的选项。

但是,如果一个产品将要在两种类型的浏览器上可用,开发人员通常必须编写两套代码。一套适用于几乎所有现代浏览器,另一套适用于IE。显然,这种做法使得维护成为了一场噩梦。但随着时间的推移,许多JavaScript框架/库开始添加代码来专门解决这些问题。这些代码片段被称为shims。因为它们可以让你的代码“适应”IE。

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

这基本上意味着许多人仍然被迫使用IE,因此这些shim仍然是必要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接