ESLint 加入 jQuery 基金会

发布日期: 作者:

继上周宣布 JSCS 与 ESLint 合并 之后,本周 ESLint 团队宣布他们将把他们的项目带到 jQuery 基金会。我们很高兴成为 ESLint 的长期、公开管理的家的提供者。我们也期待看到这次与 JSCS 的新合作带来的成果。

在基金会,我们一直在努力寻找方法,使 JavaScript 开发人员的开发体验变得更好。我们相信 ESLint 和 JSCS 在这方面都是领导者。这两个令人难以置信的杰出团队在 jQuery 基金会走到一起,我们期待看到并支持 ESLint 的加速开发,以及开发人员在将 JavaScript 分析、代码检查和代码风格检查引入他们的项目时更容易发现和做出决定。

展望未来,我们希望继续支持 JavaScript 领域的创新,同时为 JavaScript 开发世界各方面的协作提供一个合适的环境。有关 ESLint 选择 jQuery 基金会的理由以及这对相关团队和用户的意义,请查看他们在 ESLint 博客 上发布的公告。

践行我们对多元化的承诺

发布日期: 作者:

为了履行我们今年夏天宣布的 重新关注 多元化、教育和可访问性的承诺,jQuery 基金会过去几个月举办了一项活动,并赞助了另一项活动,旨在通过外展和教育来提高科技领域的包容性。

jQuery 开发者峰会

10 月 16-18 日,jQuery 基金会与合作伙伴 Women of Color in Tech ChatManhattan JSGirl Develop itCoalition for Queens 共同在纽约市为 50 位开发者举办了 jQuery 基金会开发者峰会。  

这项为期三天的免费活动,由 Digital Ocean 慷慨地提供场地,旨在让开源开发对科技行业中代表性不足群体的成员更容易访问,更具包容性。来自各个技能水平和学科的参与者从当前的开源贡献者和项目代表那里学习了最佳实践和基本技能,并为他们感兴趣的开源项目做出了贡献。

此次活动标志着几个第一

  • 三年来的首次 jQuery 开发者峰会
  • jQuery 基金会在纽约市举办的首次活动
  • 我们第一次能够举办一项对参与者免费的活动
  • 我们第一次与合作伙伴合作,专注于改善开源领域中不同社区的代表性
  • 我们最近合并这两个组织之后,首次举办的将 jQuery 基金会和 Dojo 基金会的项目负责人聚集在一起的活动

在创建此活动时,jQuery 基金会试图消除参加科技活动并参与开源的尽可能多的障碍。为了实现我们的目标,我们把活动安排在周末,以避免工作冲突,让所有参与者免费参加,以消除收入障碍,将规模控制在较小范围内,以确保导师与参与者比例较低,与当地代表性不足群体的组织合作,并遵循 jQuery 基金会行为准则。我们的努力得到了回报,使这次活动成为所有人的安全和欢迎的环境。

议程

周五晚上,我们举行了一场愉快的见面会,提供食物和饮料。导师帮助每个人设置笔记本电脑,安装他们周六早上开始工作所需的所有软件。

周六开始了一系列由经验丰富的开发者和 jQuery 基金会和其他开源项目的领导者(在许多情况下)进行的介绍性演讲。目的是让新参与者了解参与开源项目的理由、方法和内容。

为什么要贡献?

Anne-Gaelle Colom,jQuery 基金会内容负责人,西敏斯特大学讲师,分享了她 1996 年第一次参与移动编程的故事,以及她后来参与 jQuery 项目如何帮助她在男性主导的职业和大学部门获得认可和地位。在此查看她的演讲 此处

其他演讲,在周六和周日的上午进行,涵盖了开始参与开源所需了解的所有基础知识。演讲者和内容都很棒。在可能的情况下,幻灯片链接包含在下面。

  • Adam Sontag – 简介 “修复简单错误的叙述”
  • Dave Methvin – 报告和分类错误
  • Ashley Williams – 拉取请求、代码审查、自动化检查(CLA、CI 等)| 开源许可证和 CLA
  • Brian Brennan – 命令行 + Git + 拉取请求
  • Adam Ulvi – 所有这些是如何上线的 -> 虚拟机 / Vagrant
  • Nick Hehr – 贡献代码
  • Leo Balter – 单元测试
  • Sarah Frisk –  项目沟通、应用于工作场所/职业生涯的开源原则
  • Rushaine McBean – 社区/激励/抱负 – 参与的“软”方式(聚会、会议、演讲等)
  • István Szmozsánszky Flaki  – 浏览器开发工具研讨会

技能

周六的演讲结束后,所有的导师都简要概述了他们的项目,参与者与他们最感兴趣的项目配对。

导师引导参与者使用 virtualbox、node、npm、git 和编辑器设置他们的环境。

学科

参与者在由不同学科成员组成的团队中工作,确保每个人都能够根据自己的优势和兴趣做出有意义的贡献。这些包括

  • 编程
  • 文档
  • 服务器/网络管理
  • 设计
  • 社区发展

项目

参与者与项目团队成员一起工作,在所有这些学科中对流行的开源项目做出贡献,其中一些包括

结果

几位参与者回复了我们的活动后调查。以下是一些反馈

峰会让我受益匪浅。我真的很看重导师与学员的比例。在任何地方,只要你处于某个阶段,周围都有很多专家,你都可以与他们一对一地交流,这很棒。我喜欢这种随意灵活的方式。

我认为你做得很好,吸引了各种各样的人参加。
我很高兴你包括了 LGBTQ 社区。在我 21 年的科技生涯中,我从未见过任何其他活动或会议有如此多元化。

最有价值的方面是贡献开源。峰会让我意识到,开源不仅仅是代码。

我们还询问了导师的意见

演讲者/导师与参与者的近乎 1 对 1 的比例让这次活动变得如此亲密,让我有机会真正认识大家,了解他们,了解他们的兴趣以及他们如何能为开源做出贡献,以及开源如何能为他们的生活带来益处。

参与者的热情和他们参与的愿望令人惊叹!很明显,很多人只是因为无法克服入门这一关而没有参与开源,而这正是我们绝对可以帮助的地方!

Mozilla View Source

11 月 2-4 日,jQuery 基金会赞助了 Mozilla 在波特兰市举办的 View Source 活动的科技多元化角。

View Source 的目标是深入、实用地介绍当前和即将到来的技术,并提供大量交流的机会。

波特兰 Women Who Code 网络总监 Caterina Paun 在科技多元化角迎接了与会者,并围绕女性在工程领域的工作、女性如何加入全男性团队以及公司如何支持女性职业发展等话题进行了讨论。

虽然要使网页构建者群体与网页消费者一样多元化,无疑还有很多工作要做,但从 Twitter 的对话来看,此次活动至少是包容性的一个灯塔。

#ViewSource 上一个反复出现的重要主题是:通过技术关注用户/人性,而不是迷恋新技术。 — Lucas Myers (@unthunk) 2015年11月4日

我偶尔会在自己作为网页开发人员的身份和目标上迷失方向。像 @viewsourceconf 这样的会议可以帮助我重新聚焦。
— Alicia Sedlock (@aliciability) 2015年11月4日

第一天结束,我必须说,最令人印象深刻的是当天登台的众多才华横溢的女性。@viewsourceconf
— Elaine Oliver (@evoliver) 2015年11月3日

jQuery 基金会的下一步

我们还有很长的路要走,还有很多工作要做,但随着我们继续执行在开源项目中提高多样性的目标,请关注 2016 年将要发布的未来活动赞助、演讲活动和开发者峰会公告!

Grunt,重启

发布日期: 作者:


Grunt 是网页开发人员工具箱中最知名和最受欢迎的任务运行器之一。现在,该项目已经加入 jQuery 基金会,我们希望让项目再次运转起来。Grunt 的创建者 Ben Alman 正在寻找可以接手项目的贡献者。该团队需要一些帮助来处理堆积如山的错误和拉取请求,然后发布一个新版本。

这是一个参与开源项目的好机会。如果您在项目中使用过 Grunt,这也是回馈和帮助网页开发社区的机会。

有兴趣?在这个 Grunt 问题中发帖。

PEP 0.4.0

发布日期: 作者:

今天,我们很高兴地宣布 PEP 的新版本发布:0.4.0 版。值得注意的变化包括:对 webpack 和 browserify 等模块打包器提供更好的支持,以及在 CDN 上包含一个 WIP 版本。WIP 版本可以在 https://code.jqueryjs.cn/pep/pep-git.js 中找到,但仅应用于测试(请不要将 WIP 版本部署到生产环境)。

有关此版本中包含内容的完整详细信息,请参阅 变更日志

要开始使用 PEP,您可以从 npmbower (pepjs)jQuery CDNGitHub 版本 获取文件。查看 示例查看项目自述文件 了解更多详细信息。如果您在使用 PEP 时遇到任何问题,请 提交问题 或加入我们位于 #pep on freenode 的 IRC 频道。

感谢所有帮助发布此版本的人,特别是:Anders D. Johnson、Colin Snover、John-David Dalton、Jörn Zaefferer、Mike Mariano、Scott González、Stefan Neubert、Stuart P. Bentley、Will Binns-Smith。

宣布 Globalize 1.0

发布日期: 作者:

jQuery 基金会很高兴地宣布 Globalize 项目的 1.0 版本发布,这是我们的国际化 (i18n) 库。这个版本的发布已经酝酿了很长时间,随着 Globalize 的发展壮大,每天都获得越来越多的采用,我们很自豪地最终宣布该项目的第一个稳定版本。我们可以继续讨论此最新版本的功能和优势,但我们认为您从源代码处了解这些信息很重要。在下面,Globalize 项目的负责人 Rafael Xavier 详细介绍了有关 Globalize 1.0 版本的发布以及未来计划的所有信息。

一个始终保持最新、模块化且简单的 i18n 库

请允许我跳过细节,直接进入有趣的部分。以下是您今天在 Globalize 中获得的内容,它提供了数字格式化和解析、日期和时间格式化和解析、货币格式化、消息格式化(ICU 消息格式模式,支持性别和复数)。

日期格式化和解析

日期模块提供了方法,可将日期和时间从其内部表示转换为文本形式(格式化)以及反过来(解析),并且与语言无关。您的代码可以方便地控制格式化日期、时间和日期时间的长度。

区域设置 .dateFormatter({ datetime: "medium" })( new Date() );
en "Feb 20, 2015, 12:15:00 PM"
zh "2015年2月20日 下午12:15:00"
zh-u-nu-native "二〇一五年二月二〇日 下午一二:一五:〇〇"
es "20 de feb. de 2015 12:15:00"
ar "٢٠‏/٠٢‏/٢٠١٥ ١٢،١٥،٠٠ م"

您的代码甚至可以单独选择字段,完全独立于区域设置约定。模式 “GyMMMd” 选择简写形式的纪元、年份、简写形式的月份和日期。

区域设置 .dateFormatter({ skeleton "GyMMMd" })( new Date() );
en "Feb 20, 2015 AD"
zh "公元2015年2月20日"
es "20 feb. de 2015 d. C."
ar "٢٠ فبراير، ٢٠١٥ م"

 

相对时间格式化

除了格式化日期和时间之外,相对时间模块还提供了国际化消息,用于日期和时间字段,使用可用的习惯用语或短语。

区域设置、值 .relativeTimeFormatter( "day" )( value );
en, -15 "15 days ago"
en, 0 "today"
en, 1 "tomorrow"

 

数字格式化和解析

数字模块提供了用于格式化和解析数字的方法。您的代码可以完全独立于区域设置约定,例如小数点、千位分隔符,甚至使用的特定小数位,或者数字格式是否为十进制。尽管如此,它仍然可以方便地控制格式化数字的各个方面,例如最小和最大小数位、整数填充、舍入方法、显示为百分比等等。

区域设置 .numberFormatter()( Math.PI );
en(英语) "3.142"
es(西班牙语) "3,142"
ar(阿拉伯语) "٣٫١٤٢"

格式化千位分隔符

区域设置 .numberFormatter()( 1000000 );
en-US(美式英语) "1,000,000"
en-IN(印度英语) "10,00,000"

格式化百分比

区域设置 .numberFormatter({ style: "percent" })( 0.15 );
en(英语) "15%"
es(西班牙语) "15 %"
ar(阿拉伯语) "١٥٪"

 

货币格式化

货币模块提供了方法,允许格式化货币。您的代码可以完全独立于区域设置约定,例如使用哪个货币符号、货币符号和值之间是否有空格、货币符号应该放在哪一侧,甚至特定货币使用的小数位。货币可以使用符号(默认)、会计形式、3 个字母的代码或复数消息来显示。

使用符号格式化货币

3 个字母的货币代码 en(英语) de(德语) zh(中文) ar(阿拉伯语)
.currencyFormatter( "USD" )( 1 ); "$1.00" "1,00 $" "US$ 1.00" "US$ ١٫٠٠"
.currencyFormatter( "EUR" )( 1 ); "€1.00" "1,00 €" "€ 1.00" "€ ١٫٠٠"
.currencyFormatter( "CNY" )( 1 ); "CN¥1.00" "1,00 CN¥" "¥ 1.00" "ي.ص ١٫٠٠"
.currencyFormatter( "JPY" )( 1 ); "¥1" "1 ¥" "JP¥ 1" "JP¥ ١"
.currencyFormatter( "GBP" )( 1 ); "£1.00" "1,00 £" "£ 1.00" "£ ١٫٠٠"
.currencyFormatter( "BRL" )( 1 ); "R$1.00" "1,00 R$" "R$ 1.00" "R$ ١٫٠٠"

以完整名称格式化货币

区域设置 .currencyFormatter( "USD", { style: "name" })( 1 );
en(英语) "1.00 US dollar"
de(德语) "1,00 US-Dollar"
zh(中文) "1.00美元"
ar(阿拉伯语) "١٫٠٠ دولار أمريكي"

以会计形式格式化货币,例如,在英语区域设置中,使用括号而不是减号表示负数

区域设置 .currencyFormatter( "USD", { style: "accounting" })( -1 );
en(英语) "($1.00)"

 

支持 ICU 消息格式(支持性别和复数)

消息模块提供方法,允许创建国际化消息,并带可选参数(变量/占位符),允许简单替换、性别和复数变格。参数可以按任何顺序出现,这对于翻译成语法不同的语言是必要的。

Globalize.loadMessages({
  en: {
   likeIncludingMe: [
      "{count, plural,",
      "    one {You have one task remaining}",
      "  other {You have {count} tasks remaining}",
      "}"
    ]
  }
});

 

区域设置、计数 .messageFormatter( "likeIncludingMe" )({ count: count });
en, 1 "You have one task remaining"
en, 99 "You have 99 tasks remaining"

 

基于标准

Globalize 基于 Unicode 联盟标准和规范(UTS#35),并使用其 通用语言环境数据存储库 (CLDR),这是可用的最大和最全面的语言环境数据标准存储库。CLDR 不断更新,并被许多大型应用程序和操作系统使用,因此您始终可以访问最准确和最新的语言环境数据。

CLDR 内容

Globalize 需要 CLDR 内容才能正常运行,但它不嵌入或托管此类内容。相反,Globalize 使开发人员能够按他们想要的方式加载 CLDR 数据。预期将提供官方 JSON 格式的原始 CLDR(无需预处理)。因此,(a) Globalize 避免了因过时的 i18n 内容引起的错误。开发人员可以使用来自 Unicode 的最新 CLDR 数据,只要数据发布,无需等待我们这边任何管道。 (b) 开发人员可以完全控制他们希望在其应用程序中提供哪些语言环境覆盖范围。 (c) 开发人员能够在 Globalize 和其他利用 CLDR 的库之间共享相同的 i18n 数据集。无需重复数据。有关更多信息,请阅读有关 CLDR 使用情况 的文档。

浏览器和 Node.js 支持

Globalize 针对台式机和移动浏览器以及 Node.js 进行了系统测试。因此,使用它,您将在各种浏览器以及客户端和服务器之间获得一致的结果。有关更多详细信息,请阅读我们的 浏览器支持 部分。

入门

安装它 并立即使用它。在我们的 使用 部分查看 AMD + bower、Node.js + npm 或纯 JavaScript 的示例。

如果您来自 Globalize 0.x,请不要惊慌。我们为您创建了 迁移指南

团队和社区

感谢大家一直以来的支持,特别是感谢 Jörn Zaefferer 和 Scott González 对我们最初的重写概念提供的帮助,以及他们一直以来的建议;感谢 John Emmons、Steven R. Loomis 和 Mark Davis(Unicode)对 CLDR 和 UTS#35 规范问题提供的帮助;感谢 Alex Sexton 和 Eemeli Aro 为我们 MessageFormat 和 Plural 模块提供的 messageformat.js 和 make-plural.js 库;感谢 jQuery 基金会对社区建设、协作工作和对 Globalize 以及 Web 国际化的持续支持。

我们还要感谢 Nebojša Ćirić、Mihai Niță 和 Shanjian Li(Google);Steven Loomis、Steven Atkin 和 John Emmons(IBM);Rick Waldron(Ecma-402 第二版编辑);Caridy Patiño 和 Eric Ferraiuolo(Yahoo);Christophe Jolif 和 Clement Mathieu(Dojo);Cameron Dutro 和 Kirill Lashuk(Twitter);Craig Cummings 和 Tex Texin(jsi18n.com);Santhosh Thottingal 和 Kartik Mistry(维基百科);Axel Hecht(Mozilla);Bruno Lewin 和 Daniel Goldschmidt(微软);Lily Wen(Adobe);Edwin Hoogerbeets(LG);Eirik Rude(Oracle);Xiang Xu(Paypal);Iskren Chernev(moment.js);以及 Tingan Ho(l10ns.org)加入我们,共同努力更好地协调 JavaScript 社区的全球化(国际化和本地化)活动。如果您想参与其中或了解更多信息,请访问 javascript-globalization@googlegroups.com 邮件列表或查看我们的 JavaScript 全球化 概述页面

即将推出

我们正在努力开发更多激动人心的功能,这些功能将很快成为 Globalize 的一部分。举几个例子:运行时优化非格里高利历支持。因此,如果您对其中任何一个感兴趣,请务必参与进来。表达您的想法和需求(例如,您希望支持哪些日历)。
我们一直在寻找加入我们团队的贡献者。如果您想参与其中,请阅读 贡献指南。您的帮助将受到热烈欢迎。

宣布 PEP 0.3.0

发布日期: 作者:

今天,我们很高兴地宣布 PEP 的第一个版本(jQuery 基金会的 指针事件 polyfill),这是自 Google 将指针事件 polyfill 转移到 jQuery 基金会 以来的第一个版本。为了解决指针事件规范的更改并完善我们的测试套件,还需要做更多工作,但您现在就可以在项目中开始使用指针事件!其他项目,例如 jQuery UI、jQuery Mobile 和 Dojo,正在使用 PEP 切换到指针事件。

为了庆祝我们的第一个版本,Alex Schmitz 创建了一个小 演示,他用它展示了 PEP 在不同设备上的工作情况。

P drawn on desktop ChromeE drawn in Chrome on AndroidP drawn in Mobile Safari

自转移以来,我们一直在专注于迁移到新的基础设施,以便更轻松地进行贡献和更快速地进行开发。我们已将测试切换到使用 Intern,并使用 Travis CI 设置了持续集成,并使用 BrowserStack 在所有受支持的浏览器中运行测试。我们还放弃了简单的文件连接,转而使用 Esperanto 通过 ES6 模块来明确跨文件依赖关系。最后,我们迁移到 通用发布基础设施,以确保发布一致性。

要开始使用 PEP,您可以从 npmbower(pepjs)jQuery CDNGitHub 发布 获取文件。查看 示例查看项目自述文件 以获取更多详细信息。如果您在使用 PEP 时遇到任何问题,请 提交问题 或加入我们在 IRC 上的 #pep on freenode 频道。

发布 Esprima 2.1

发布日期: 作者:

我们刚刚发布了 Esprima 2.1.0!此版本引入了对几个新的 ES6 语法片段的支持:类、剩余参数、计算属性名、let 和 const。有关完整详细信息,请参见下面的发布说明。我们还对我们的测试基础设施进行了各种改进,使代码库更便于贡献者使用。衷心感谢所有为此次发布贡献补丁的人:Ariya Hidayat、Bei Zhang、Brandon Mills、Mike Rennie、Mike Sherov。

在努力将更多 ES6 功能引入 Esprima 的过程中,我们开始与其他 JavaScript 解析器和解析器使用者合作,以帮助定义 JS AST 生成的社区标准。这项努力的结果是 ESTree 规范,位于此处:https://github.com/estree/estree。我们想感谢所有贡献者,包括 Esprima、Mozilla SpiderMonkey 解析器、Acorn 解析器和 Babel 的成员,仅举几例。完整的贡献者列表位于此处:https://github.com/estree/estree/blob/master/README.md

预计几周后将发布 2.2 版本,将提供更多 ES6 支持。如果您想帮助贡献,我们会在 Freenode IRC 上的 #esprima 房间里闲逛,并在每周三美国东部时间下午 2 点在 Freenode IRC 上的 #esprima-meeting 房间里举行每周会议。我们期待在那里见到您!

发布说明

  • 支持 ES6 类 #1001
  • 支持 ES6 剩余参数 #1011
  • 支持 ES6 计算属性名 #1037
  • 支持 ES6 词法声明 #1065
  • 扩展属性 getter、setter 和方法的位置 #1029
  • 启用 TryStatement 过渡到单个处理程序 #1031
  • 容忍未关闭的块注释 #1041

发布 QUnit 1.16 和路线图

发布日期: 作者:

我们刚刚发布了 QUnit 1.16,这是该项目的一个重要里程碑。此版本引入了几个新的 API,这些 API 将成为 QUnit 2.0 中的默认 API。为了帮助迁移到这些 API,您现在可以在 1.16 中开始使用它们。我们的 2.x 升级指南提供了将现有测试套件更改为新 API 所需的所有详细信息。

以下是新 API 的简要概述

QUnit.test( "assert.async() test", function( assert ) {
  var done = assert.async();
  var input = $( "#test-input" ).focus();
  setTimeout(function() {
    assert.equal( document.activeElement, input[0], "Input was focused" );
    done();
  });
});

您仍然可以通过调用 QUnit.test 并传递名称和回调来定义测试。回调接收一个包含所有断言方法的 assert 参数。assert.async() 方法是全新的,它取代了旧的 stop() 方法。返回的回调(此处名为 done)在测试完成后被调用,取代了旧的 start() 方法。

此外,QUnit 1.16 包含一些改进和新功能

  • Promise 支持:作为对异步控制的增强,测试块现在支持 Promise,这意味着 QUnit 将等待测试使用通过或失败语句解析。
  • QUnit 异步测试现在还可以使用新的 var done = assert.async() 方法来定义,而不是使用旧的 stop()/start() 方法,这使得它们对测试块是特定的。
  • QUnit.skip:此方法可用于定义未执行的测试,作为占位符或暂时禁用现有测试(而不是将其注释掉)。跳过的测试仍将显示在 HTML 报告器中,并以“SKIPPED”的显著标记进行标记。
  • testId URL 参数:单击单个测试的“重新运行”链接时,现在使用测试名称的哈希来引用测试(称为 testId),而不是以前的 testNumber。使用哈希确保测试的顺序可以更改,并且 QUnit 仍将重新运行您之前选择的相同测试。
  • CommonJS 导出:QUnit 现在还查找 exports 对象并使用它来导出自身,这使得 QUnit 可以使用 -require 选项在 Rhino 上使用。
  • 还有一些其他的小更改。有关完整列表,请查看更改日志

路线图

对于未来的版本,我们还计划进行一些改进

标准化报告器接口

目前,将任何单元测试库集成到其他工具(如 PhantomJS 或 browserstack-runner 或 Karma)中,需要自定义集成代码,这需要结合使用库和工具。我们已经开始努力创建一种标准报告器接口,所有测试库都可以实现它,称为 js-reporters,供这些工具使用。协调不同项目之间的合作并让他们就共同 API 达成一致并实现它需要时间,但这将为每个人带来更好的测试基础设施。

更好的差异输出

在编写比较具有深层结构或许多属性的对象的单元测试时,例如 Ember 模型或 Moment 实例,当前的差异输出速度很慢且效率低下。还有一些比较的差异难以阅读。替换差异库并实施自定义优化(例如,只显示大型对象中叶子的差异)将使 QUnit 的 HTML 报告器更加友好。我们有一个 所有与差异相关的问题的列表

更好地支持编写自定义断言

自定义断言是测试套件中的一种强大的抽象方法。它们目前使用不足。我们想 调查编写自定义断言的更好的 API,以及对现有和新的 API 进行更好的文档记录。

支持嵌套模块

嵌套模块,就像 Jasmine 和 Mocha 支持的那样,在构建测试套件时提供了更大的灵活性。有 现有的讨论和原型,但还没有就 API 达成共识。

对于任何重大更改,我们将应用我们目前使用的相同迁移模型。所有向后兼容的更改将被添加到下一个次要版本中,任何不兼容的更改将在一个次要版本中引入迁移层,并在下一个主要版本中删除迁移层。

QUnit 团队

QUnit 团队也希望借此机会介绍一下自己

2014 年 9 月在芝加哥举行的 jQuery 大会上,从左到右:Jörn Zaefferer、Timo “Krinkle” Tijhof、James M. Greene 和 Leonardo Balter

 

jQuery 基金会采用 Mousewheel 插件

发布于 作者

jQuery 基金会很高兴宣布 Brandon Aaron 已将他的 jquery-mousewheel 插件捐赠给 jQuery 基金会。Brandon 是 jQuery 团队的校友,他将插件留在了非常好的状态,只有很少的未解决问题。它是一个 非常流行的插件,通常与 jQuery UI 和其他小部件一起使用。

采用 mousewheel 插件是 jQuery 基金会使命的一部分,即让 Web 开发人员的工作更容易。我们希望确保 Web 开发人员可以使用此插件,并确信它将在未来得到支持。当然,我们无法独自完成这项工作,并鼓励社区参与拉取请求,并为 jQuery 基金会提供支持。您可以在 https://github.com/jquery/jquery-mousewheel/ 找到它。

被放弃或被忽视的开源项目可能是 Web 开发人员的眼中钉。当开发人员的个人项目变得非常流行时,它通常会超出该人维护和支持它的能力。更多的开发人员应该像 Brandon 那样采取行动,寻找能够在他们没有时间时接手的人。正如 Eric Raymond 在《大教堂与集市》中所说,“当您对一个程序失去兴趣时,您对它的最后责任就是把它交给一个称职的继任者。”

jQuery 基金会和标准

发布于 作者

大多数 Web 开发人员都将 jQuery 视为其根源,即一个试图为从浏览器到浏览器变化的各种 API 和怪癖带来理智的库。虽然这是 jQuery 构建的目的之一,现在仍然是,但它并非唯一的目的。jQuery 定义了一个有用的 API,它使操作单个元素与操作十几个元素一样容易。jQuery 简化了冗长的 DOM API 名称,并删除了冗长的样板代码,使其更容易编写和阅读代码。jQuery 为 Web 开发人员经常需要完成的工作增加了标准 API 之外的功能。

简而言之,jQuery 不仅仅是浏览器的 API 修理工。在我们需要解决问题的情况下,我们会这样做。但我们更感兴趣的是让浏览器解决它们的问题,以及制定未来的标准来避免问题,以便原生 API 从一开始就能正常工作。然后,我们都可以在此坚实的基础上构建有用的功能。

jQuery 团队成员带来了丰富的实际经验,引导标准朝着正确的方向发展。这方面的最早例子是 querySelectorAll 方法,John Resig 指出 实现并不完全是 JavaScript 开发人员所需要的。不幸的是,在 querySelectorAll 的情况下,为时已晚,无法做任何事情来解决问题。

jQuery 如何塑造标准

为了对新兴标准提供意见,jQuery 基金会去年加入了万维网联盟 (W3C) 和 ECMA 国际。事实上,这是基金会成立的主要原因之一。W3C 和 ECMA 成员往往是制作浏览器和商业软件的公司代表。我们相信,我们在标准化过程中带来了普通 Web 开发人员的声音。

Yehuda Katz 和 Rick Waldron 一直活跃在 ECMA TC39 小组 中,该小组正式定义了名为 EcmaScript 的语言,但我们将其称为 JavaScript。Rick 的优秀 会议记录 可以让您深入了解他们在面对面会议期间进行的讨论。

Scott González 和 Kris Borchers 一直致力于完善 指针事件标准。它为指针技术的处理带来了简单性、规律性和理智,以便开发人员不会对触摸和鼠标事件模型出现不一致(和冲突!)。在过渡期间,开发人员将使用 *三种* 指针模型 - 鼠标、触摸和指针。jQuery 和 jQuery UI 想要简化此过渡到标准。

Julian Aubourg 一直参与对 XMLHttpRequest 标准 的修订,这是一个他通过 jQuery 的 $.ajax 实现而历经考验的职位。了解 jQuery 绕过的所有问题,使他具备了避免将来出现相同问题的经验。

Scott González 和 TJ VanToll 一直积极参与帮助定义 HTML5 输入类型,例如 <input type=”date”>,并提供 实际输入,基于 jQuery UI 的经验。TJ 在波特兰 jQuery 会议上的 演讲 很好的介绍了当今使用 HTML5 输入类型的陷阱,以及 Web Components 等新兴标准,这些标准可以使 Web 开发人员的工作更轻松。

jQuery 基金会也是无障碍的坚定倡导者;我们希望使 Web 开发人员能够轻松地接触到所有用户,包括有视觉或运动障碍的用户。W3C 通过 Web 内容无障碍指南 解决这些问题,特别是通过 无障碍富互联网应用 (ARIA)。jQuery UI 小部件正在整合 ARIA 属性,基金会成员 Deque Systems 赞助了多个关于 jQuery 无障碍问题的活动。

最后,我们协调并传递给 jQuery 的错误报告,这些错误报告是由于特定浏览器中的标准违规造成的。由于大多数浏览器每隔几个月就会更新一次,因此为临时问题合并大型和复杂的错误修复通常没有意义。但我们致力于尽快让浏览器制造商修复这些问题。

以标准为中心的 jQuery 未来

jQuery 不是一个高度主观的框架,它要求控制所有 DOM。在大多数情况下,您可以(并且通常应该)将 DOM API 与 jQuery 一起使用。这始终是预期的设计;您可以在事件处理程序内部的 this 对象是 DOM 元素而不是 jQuery 对象等方面看到这一点。jQuery 需要控制的唯一地方是当 DOM 中的元素通过诸如 .html() 之类的方法替换或通过诸如 .empty() 之类的方法删除时,以便可以清除任何关联的 jQuery 数据。

类似地,内置的 HTML5 输入类型可以与 jQuery UI 输入小部件共存。jQuery UI 致力于提供用户界面小部件,这些小部件提供出色的功能,同时又不牺牲可访问性,本质上支持 ARIA 等标准。

jQuery 基金会希望开发人员可以直接使用基于标准的 API 和尖端的 JavaScript 功能。好消息是,社区正在朝着这个目标取得良好进展,jQuery 团队成员正在通过参与标准化过程来提供帮助。然而,Web 标准和实践的不断发展,加上充满活力的第三方插件和知识生态系统,仍然提供了使用 jQuery 的令人信服的理由。Web 开发人员应该拥有两者中的最好。