jQuery 1.9 和 2.0 - TL;DR 版
似乎很多人对上一篇博文有疑问和误解,所以让我们尝试用简短的问答格式来回答其中的一些评论。
为什么 jQuery 核心团队要放弃对旧版 IE(IE 6/7/8)的支持? 并没有!jQuery 1.9 将在明年发布时支持旧版 IE。即使在发布 jQuery 2.0 之后,jQuery 团队也会继续支持和维护版本 1.9。
为什么你们要让我使用条件注释来包含 jQuery? 我们没有!您可以对我们支持的所有浏览器使用 jQuery 1.9,从 IE6 一直到 Chrome、Safari、Opera 或 Internet Explorer 的最新版本。
当 jQuery 2.1 发布并添加 API 时,jQuery 1.9 会支持它们吗? 你想借我的水晶球吗?jQuery 2.1 可能要等到 2014 年才会发布,所以现在在 2012 年年中很难说 jQuery 2.1 会是什么样子。我们的总体目标是使 1.x 和 2.x 线保持同步,并通过插件添加功能;请参阅上周会议的主题演讲。
您将支持 jQuery 1.9 多长时间? 只要旧版 IE 在网络上占有重要份额,我们就会一直支持它。甚至有可能在 1.x 线中会有进一步的版本发布,但我们还没有收到上一个问题中要求的水晶球。然而,当微软在 2014 年 4 月停止支持 Windows XP 时,将会对旧版 IE 的安装基础造成冲击。
我还有很多 IE8 用户,你们不能只放弃 IE6 和 IE7 吗? 旧版 IE 浏览器共用了很多相同的缺陷,所以除了在 jQuery 2.0 中删除所有三个版本之外,其他任何做法都没有帮助。如果您需要任何旧版 IE 支持,那么支持的 jQuery 1.9 将随时为您提供帮助。
我的网站在中国,有 22% 的用户仍在使用 IE6! 听起来像是某种侵犯人权的行为。哦,那不是个问题。
我认为应该有人采取勇敢的行动,直接放弃 IE6-8。一步一步地进行不起作用,我们需要推动人们更新他们的浏览器。这只会延缓网络的发展。
想象一下我们浪费的时间来支持过时的技术,如果我们把这些时间花在寻找新事物上,将会对我们有很大的帮助。
我认为,有一个只支持现代浏览器的 jQuery 会很棒,而对于那些仍然需要支持旧版浏览器的用户,也可以提供另一个版本。
只有我一个人认为 IE6 用户已经习惯了互联网看起来很糟糕,而且运行不正常吗?
也许我只是从设计师的角度来看待这个问题,但是如果你只支持现代浏览器,他们永远不会注意到有什么不同。
对于所有那些说“提供另一个版本支持旧版浏览器”的人,他们是 99% 的企业开发者,这占开发者的大多数。
当然,你会看到一些不关心的初创公司、小型商店和设计团队会使用 2.0,但实际上让世界运转的大多数网络开发工作将会在很长一段时间内使用 1.9。仅仅因为微软最终停止支持 Windows XP 并不意味着人们不会继续使用它,而我们的客户的客户将非常生气,因为他们无法使用“一直运行良好”的东西。
就叫它们 2.0 和 2.0-legacy 吧。
就这样,问题解决了。再也不用无意义地抱怨那些留着 1.9 的人。
@CAFxX 2.0 和 2.0-browsers-deliberately-crippled-for-corporate-profit 这个命名方式会不会更好?
@dmethvin。也许是我理解错了,但实际上感觉你好像也理解错了我的意思。
我理解 1.9 可能会被支持,只要 IE8 仍然占有一定的市场份额。我也理解,即使在发布 v2 之后,1.9 也可能会获得增量更新。我还要感谢你没有水晶球。
此外,我之前也提到过,我确实理解,如果没有旧版 IE 支持,jQuery 会更小。
但是,我的观点仍然是一样的。如果你在不同的版本系统上提供旧版 IE 支持,那么迟早 1.9.x 和 2.x 之间的功能会朝着不同的方向发展。如果我们想在现代浏览器中使用 jQuery 中的新奇东西,最终我们会在一个网站上通过浏览器嗅探和功能检测的方式在两个版本之间进行切换,就像一个写得很糟糕的 WordPress 主题一样。或者,我们保持简单,一直使用 1.9 直到 IE8 消失,但这会让我非常沮丧。
我喜欢 jQuery,对它没有不好的评价,我已经使用它多年了。我不觉得它很臃肿,因为我相信这个决定表明其他人也这么认为。我希望生活在一个只专注于最新和最棒的东西的世界,但在这个世界到来之前,jQuery 使得照顾到每个人变得很容易。我不想在保持最新和向后兼容之间做出选择。
如果我理解错了,我很高兴。如果没有,我希望我对 IE8 的持续影响是错误的。
Rich
我不相信 jQuery 团队必须在 2.0 版本中放弃对 IE < 9 的支持才能向前发展并迎合现代浏览器中的 JavaScript 开发。
这是因为 jQuery 2.0 对于这些现代浏览器来说根本没有必要。开发者可以直接使用浏览器的内置 JavaScript 引擎,避免所有臃肿的代码。想要使用 CSS 选择器编写选定文档元素的脚本吗?那么他们可以直接使用 document.querySelectorAll() 以及 document.getElementsByClassName()。现在可以在所有现代浏览器中统一地附加事件,使用 addEventListener()(是的,即使在 IE9 中也可以使用它)。XMLHttpRequest 对象用于 AJAX 也是一样的(IE9 中也是原生支持的)。
许多开发者主要使用 jQuery 进行跨浏览器 JavaScript 开发,涵盖旧版 IE6 浏览器。如果你真的想只针对现代浏览器开发,那么实际上并不需要 jQuery。除非你也使用 jQuery 插件,但由于它们依赖于 jQuery 2.0,因此它们只会给现代浏览器中的网页增加臃肿的代码。
那么,v1.9 会被命名为“jQuerIE”吗?
@Perry
你一定是在开玩笑,
document.getElementByClassName(‘class’)
比这个更好用
$(‘class’)
这只是一个最简单的例子,jQuery 的功能远不止这些。
我发现自己对人们为什么如此难以理解这个即将到来的更新的简洁版感到困惑。简单的事实是,jQuery 团队并没有放弃对旧版 IE 的支持,他们只是为那些能够做到这一点的网页开发者提供了一个更小、更快的替代方案。
当我们讨论缺乏支持时,为什么不把 IE5 谈进来呢?一定有一个偏僻的角落,在那里 IE5 仍然在使用。另一个事实是,IE5 的使用频率不够高,以至于支持它是不合理的。当 IE 版本 6 到 8 达到相同的使用率时(我希望这会很快发生),jQuery 团队就会放弃对它们的维护。
确实,并非所有开发者都能从这个更新中受益,但那些能够受益的人将会非常高兴。
我很多使用 jQuery 的场景都排除了 IE,IE 仍然很糟糕,一直到 IE10,所以我不会为它开发。
能够让 jQuery 摆脱尽可能多的 IE 糟粕会很棒,这肯定会让维护和使用 jQuery 变得更加愉快。