jQuery 1.11 和 2.1 发布
在美国东部,我们正蜷缩在零度以下的温度中,并应对雪暴的余波。尽管如此,没有什么比新鲜发布的纯净之美更能提振我们的心情了——不,让我们说两个发布版本。jQuery 1.11.0 和 2.1.0 已经准备好让您在这些黑暗的冬夜保持温暖了。
您可以像往常一样从我们的 CDN 获取文件,并直接使用它们或将其下载到您自己的服务器。我们的 下载页面 包含您需要的所有文件和信息,包括指向提供这些文件的其他 CDN 的指针。请给这些 CDN 几天时间进行更新!
对于那些没有持续关注的人来说,jQuery 的 1.x 和 2.x 分支都支持所有最新的现代浏览器,并且具有相同的 API。1.x 分支,这次是 1.11.0,增加了对较旧版本的 Internet Explorer(IE6、7 和 8)的支持。2.x 分支,今天由 2.1.0 扮演,增加了对非传统 Web 环境(如 node.js 以及 Chrome 和 Firefox 的浏览器插件)的支持。
jQuery 在 1.9 版本中进行了一次重大清理,删除了某些功能。如果您还没有从早期版本迁移,请参阅 jQuery 1.9 升级指南,并让 jQuery Migrate 插件 完成所有繁重的工作。
有什么新内容?
您可能想知道这些版本中有什么新的东西在等着您。也许您担心它们包含许多破坏性更改。您知道项目负责人会建议立即更新。您整周的计划和去佛罗里达的旅行都泡汤了。别担心!我们修复了许多错误,但其他功能和更改主要是组织性的,不会影响 API 的行为。您的代码不应该崩溃,它应该只是运行得更快。以下是亮点
更少的强制布局: 在此版本中,我们向可能无意中强制浏览器执行耗时的布局的地方宣战。我们发现了一些并消除了其中一个,该布局可能会在更改类名时发生。这可能会为某些页面带来巨大的性能提升。
粒度自定义构建: 我们的模块化现在由 AMD 定义,并且在空间有限的情况下构建库的小子集更容易。如果您想了解更多信息,我们已经将详细信息隐藏在 README 文件 中,那里没有人会看。
更低的启动开销: 新的模块化和避免强制布局使我们能够重构我们的功能检测,以便它们仅在需要时运行。如果您从不调用需要该功能检测的 API,您将永远不会运行该代码。以前,我们会在页面加载时运行所有功能检测,这会导致延迟,通常很小,但会累积起来——尤其是在移动平台上。
发布到 npm: 我们的版本现在将 发布到 npm,以便您可以使用它们来处理 node 或 browserify。1.x 和 2.x 分支都可在 npm 上使用,但请记住,只有 2.x 分支才支持在 node 中运行。
发布到 Bower: 我们现在使用 Bower 进行内部依赖项管理,包括 Sizzle,因此您将很快在 Bower 上看到 jQuery 版本。
有些人要求支持 jQuery 库内的其他包管理器,但我们决定目前只支持我们在内部使用的两个包管理器。有十多个包/依赖项管理器,如果它们都能同意一个项目发布信息的单一格式,那就太好了。我们不希望将包管理器的开销转嫁给像 jQuery 这样的单个项目。
虽然光环似乎总是在新事物上,但我们不喜欢忽视人们在使用上一个版本时遇到的错误和不便。我们努力减少我们的错误列表并解决了其中的许多错误。我们甚至修复了一个仅在 IE6 中发生的错误,亡羊补牢,为时未晚!
Sourcemap 更改
此版本不包含缩小文件中包含的 sourcemap 注释。Sourcemap 已被证明对开发人员来说是一个非常棘手和令人困惑的问题,在 StackOverflow 等论坛上引发了 数百名 困惑的开发人员,并导致一些人认为 jQuery 本身已损坏。
我们仍然会生成和分发 sourcemaps,但如果浏览器不支持手动关联 map 文件(目前,没有浏览器支持),则需要在压缩文件的末尾添加适当的 sourcemap 注释。如果你使用自定义构建过程生成自己的 jQuery 文件,则压缩文件中将存在 sourcemap 注释,并且会生成 map;你可以保留它并使用 sourcemaps,或者将其编辑出去并完全忽略 map 文件。
我们希望在未来改进并重新引入 sourcemap 支持,但目前,设计和实现似乎都不适合像 jQuery 这样广泛分发文件的 CDN 的情况。我们希望 sourcemap(和支持它们的浏览器)能够优雅地处理文件重命名或文件丢失的情况。有关更多信息,请参阅我们的 错误工单。
致谢
如果没有许多人的辛勤工作,此版本将无法实现。感谢所有报告错误、试用预发布文件或提供建设性批评的人。特别感谢 Alex Robbin、Amey Sakhadeo、Anthony Ryan、Aurelio DeRosa、Chris Antaki、Chris Price、Christopher Jones、Corey Frang、Daniel Herman、Domenic Denicola、Dominik D. Geyer、Forbes Lindesay、George Kats、Guy Bedford、Ilya Kantor、Jakob Stoeck、Jeremy Dunck、John Paul、Julian Aubourg、Jörn Zaefferer、Lihan Li、Marian Sollmann、Markus Staab、Marlon Landaverde、Michał Gołębiowski、Mike Sidorov、Oleg Gaidarenko、Richard Gibson、Rick Waldron、Ronny Springer、Scott González、Sindre Sorhus、T.J. Crowder、Terry Jones、Timmy Willison 和 Timo Tijhof。Colin Snover 在 #jquery-dev 中的评论也是团队罕见的幽默来源。
变更日志
jQuery 1.11 和 2.1(两者通用)
Ajax
属性
构建
- #12757: 通过构建过程强制执行样式指南
- #13983: 切换到 //# 用于 sourcemap 指令
- #14016: 包含用于自定义导出的构建选项
- #14113: AMD-ify jQuery 源代码
- #14118: 使用 bower 包含 Sizzle 和 QUnit(移除子模块)
- #14163: 使 Deferreds/Callbacks/.ready() 成为可选模块
- #14415: 移除 sourcemap 注释
- #14450: 移除 CommonJS+AMD 语法来自源代码
- #14451: 将 bower 和 npm 注册添加到发布脚本
- #14504: 构建:升级到 grunt-contrib-jshint 0.7.1 并压缩子任务
- #14615: 使用 grunt-bowercopy 管理 bower 依赖项
- #14702:npm 包的 jQuery ‘latest’ 问题
核心
- #14164: 减少 init 或方法中的强制布局重绘
- #14492: parseJSON 错误地接受逗号表达式
- #14548: npm jQuery 没有主模块
- #14549: npm jQuery 不暴露 jQuery 函数,而是奇怪的工厂
- #14645:删除 CommonJS 环境中的全局暴露,该环境具有文档
Css
- #14150: IE9-10 curCSS => “接口不受支持” 用于弹出窗口(可能也用于框架)
- #14394: style=”x: y !important;” 在 Chrome 和 Safari 中调用 el.css(x, z) 时不会更改,但在 Firefox 中有效
数据
Effects
事件
- #13993: .triggerHandler 不会从 DOM0 事件的处理程序返回值
- #14180: focusin/out 特殊事件无法跨窗口工作
- #14282: 如果存在 defaultPrevented 属性,则不要调用 getPreventDefault()
操作
其他
选择器
- #14142: 在 Safari 中 XML 文档中具有数字 ID 时返回错误的元素数量
- #14351: 在非附加 DOM 节点上运行 `find` 时抛出异常
- #14381: .add() 在 IE 中从另一个窗口添加节点时抛出“没有这样的接口”
- #14535: 在 IE11 中,当最后一个上下文是不再存在的 iframe 文档时,选择失败
- #14584: 属性以某些 IE8 中的不区分大小写方式结束
支持
- #10814: make support as lazy as possible with closure in mind
- #14084: elem.css(‘width’) 在 document ready 之前运行,如果 box-sizing: border-box,则提供不正确的输出
- #14401: 加载 application/xhtml+xml 页面时出错
- #14496: jQuery 2.1.0-beta1 无法在 XHTML 页面中初始化
jQuery 1.11
Ajax
属性
构建
核心
Effects
支持
jQuery 2.1
Ajax
构建
- #13119:使 jQuery 版本可通过 npm 使用
- #13768: 尝试从 node.js 加载 jQuery 时出错
- #14340: 移除 master 上的旧 IE 代码的 support 测试
哇,干得漂亮,你们发布的速度真快
恭喜发布!
很高兴看到 jQuery 上架 NPM。
:D 事实!!“如果你想了解更多,我们已经把细节隐藏在 README 文件里,那里没人看。”
嘿,伙计们,这项工作很棒!期待尽快升级。顺便说一句,bower 似乎还没有 1.11
$ bower info jquery#1.11.0
bower not-cached git://github.com/components/jquery.git#1.11.0
bower resolve git://github.com/components/jquery.git#1.11.0
bower ENORESTARGET 没有找到能够满足 1.11.0 的标签
更多错误详情
可用版本:2.0.3, 2.0.2, 2.0.1, 2.0.0, 1.10.2, 1.10.1, 1.10.0, 1.9.1, 1.9.0, 1.8.3, 1.8.2, 1.8.1, 1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.6, 1.2.3
我刚看了下 Bower 的情况,看起来我们需要过渡到新的、官方的 Bower jquery 列表,它指向他们真正的 git 仓库,而不是一个 shim。
所以,我想知道这是否真的如此,如果是,我们如何进行过渡。
组件团队或许应该能够推送一个标签作为临时方案。
https://github.com/components/jquery/issues/40
太棒了!
微软应该重新设计 IE 并向其客户提供强制更新关于新 IE 的信息。
顺便说一句,干得漂亮:)
干得漂亮,伙计们。
我测试了一下,没有发现任何问题,所以我在我的网站之一上升级了它。
干得好!
太棒了。感谢如此多的错误修复。我也期待着使用新的 node 特定支持。
顺便说一句,可能需要更新你们网站的页脚——快速访问部分仍然指向 1.10.2 的 URL。
感谢这次新版本,我们在项目中大量使用 jQuery,并且非常满意!
Alex – Unihost Brasil
干得漂亮。我用新版本的 jquery 更新了我的 6 个论坛。你们太棒了!修复 IE 6 的错误?这就是我如此信任这个库的原因!
出色的工作,出色的稳定性。纯粹的质量。谢谢。
这个新版本已经期待很久了,很高兴看到它发布!到目前为止,我们还没有遇到任何问题。出色的工作,各位。
此致,
一家长期使用 jQuery 的开发公司
哇,哇,哇。停一下。
jQuery 有 README 文件?!
干得好。
干得漂亮,伙计们!!!!!!!!!!!!!!!!!!! 继续努力。