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]-->
答案 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欣赏视觉图像。孩子们,这就是词源。
答案 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,因此仍然需要这些填充。