ie9-js - 有其他东西使它过时了吗?
Posted
技术标签:
【中文标题】ie9-js - 有其他东西使它过时了吗?【英文标题】:ie9-js - has something else rendered it obsolete? 【发布时间】:2012-05-01 04:21:48 【问题描述】:所以,大家都知道 ie9.js(来自http://code.google.com/p/ie7-js/)。它似乎有效,但自 2010 年上一次发布以来,它从未离开测试版。
显然,还有一些其他的东西有点类似(例如modernizr、html5shiv和CSS3Pie),但它们并不完全相同(尤其是因为它们需要按功能应用或者更多范围有限)。
将其用于现代化仍然被认为是一种好的做法吗?我应该使用其他东西吗?
【问题讨论】:
【参考方案1】:ie9.js 仍然是一段很好的代码。它做了很多工作,修复了 IE 出错的问题。
正如您正确指出的那样,它现在是一段旧代码,但它仍然可以工作。
人们可能不再使用它的原因:
ie9.js 是一个大型 polyfill。这使它变得庞大而缓慢。如果您只需要修复某些特定功能,那可能是矫枉过正;一些较小的补丁可能会更好。 ie9.js 所做的大部分修复都是针对 IE6 的。越来越少的网站不再支持 IE6,因此所有这些代码都是多余的。同样,一些较小的补丁可能会更好。 ie9.js 不再被积极维护。这很好,因为它完成了它所要做的工作,但其他更新的补丁正在引起更多的兴趣,这既是因为它们是新的,也是因为它们可能具有任何优势。在您提到的替代工具(modernizr、html5shiv、CSS3Pie)中,它们实际上都没有任何与 ie9.js 交叉的功能。 (另见this answer)
但是,这里有一些更新的工具可能是 ie9.js 的良好替代品:
jQuery - 或其他类似库之一。这不仅仅是修复 IE 的漏洞,而是因为它强调了跨浏览器的兼容性,即使在 IE6 中,如果你正在编写 jQuery 代码,几乎不需要 ie9.js 提供的 javascript 补丁 Selectivzr - 这可能是主要的。它是 IE 不支持的大多数缺少的 CSS 选择器的 polyfill。 ie9.js 做了更多的事情(即 IE6 和 7 的关系选择器),但 Selectivzr 使用预先存在的选择器引擎(您可以选择 jQuery、Prototype 等),这意味着它非常快速且轻量级,因为它利用了资源已加载。鉴于如今浏览器中的绝大多数 JS 代码都是使用 jQuery 编写的,这基本上将像 ie9.js 这样的包罗万象的 IE 修复程序补丁的需求减少到几乎为零。
但是,如果您不使用 jQuery 或类似的库,那么您可能会发现 ie9.js 仍然可以很好地为您工作。
【讨论】:
【参考方案2】:我们前段时间为 ie9.js 制作了一个补丁并作为开源发布:https://github.com/mylovecompany/ie9-js。
【讨论】:
以上是关于ie9-js - 有其他东西使它过时了吗?的主要内容,如果未能解决你的问题,请参考以下文章
哈理工-14级-大一到大四 (课程设计 + 实验报告 + 自学视频教程书籍 + 课件 + 作业 + 考试 复习资料) 应有尽有,虽然有过时的东西,但相信我,绝对有干货!!!