等待已久的jQuery 3.0带来了更精简的编译

2016 年 7 月 03 日

jQuery 团队终于揭开了等待已久的 3.0 发布版的神秘面纱,带来了全新的、精简过的选项,以及新的主要功能、改进和 bug 的修复。

《jQuery 3.0 终于发布了!》的博客帖中,jQuery 团队的核心成员Timmy Willison 宣布了jQuery 的“精简编译”,其中说道:“有时你不需要ajax,或者你更偏向使用专门集中于ajax 请求而开发的许多独立库之一。并且使用CSS 和类处理来实现你的web 动画往往更加简单。”

精简版与标准版jQuery 一起发布,其中不包括ajax、动画效果和最近否决的代码,对比完整版的30k,它以精简的23.6k 的大小呈现在大家面前。这个精简版的jQuery 包可以在这里下载。

自从2014 年十月以来的预测,在3.0 这个重要里程碑的新功能中还有一个更新过的jQuery.Deferred 对象。现在它兼容Promises/A+ 和ES2015 Promises,Willison 还解释,在3.0 版本中“在.then()回调中抛出的异常现在变成了一个rejection 类型的值。之前,异常会一直向上抛出,中止了回调的执行。任何被defer 的部分,如果依赖于一个抛出异常的、被defer 的部分的解决,那它将永远不会被执行。”

Willison 还做了一个很重要的区分,使用 rejection 回调处理被捕获的异常现在描述性更强了,这使开发者们可以使用 promises 时总是添加至少一个 rejection 回调。

3.0 发布版中的其他改进还包括在展示动画效果、展示更平滑的动画和减少移动端电量损耗的时候使用requestAnimationFrameAPI。当 Willison 解释之前在代码的兼容性问题后他们提出而又否决这次更新时,他说他们的团队希望能通过在浏览器标签页离开视图时延迟动画解决这个问题。

除了大量其他的修改,jQuery 3.0 现在带来了正式的对jQuery.ready中的 promise 的支持。然而人们注意到jQuery.ready自从 jQuery 1.8 开始就作为类似 promise 对象的消耗品,在文档中它通过jQuery.when或原生的Promise.resolve()给予支持。一个典型的使用例子如下:

复制代码
$.when( $.ready, $.getScript("optional.js") ).then(function() {
// the document is ready and optional.js has loaded/run
}).catch( function() {
// an error occurred
})

这次发布版还带来了一些突破性的变化,尽管它本来是企图尽可能向后兼容的。在 jQuery 核心中,jQuery 是使用"use strict"命令来编译的,虽然人们能够注意到大部分已存在的代码不应该产生任何变化,因为在 Strict 模式中它不允许执行。

其他的突破性变化包括去除了 jQuery 核心中已否决的.context.selector属性,这也是一个对数据名的改变。从 3.0 开始,所有的数据名都以驼峰式命名法进行存储(clickCount),而不是使用串联命名法(click-count)。

欲了解更多 3.0 版本中更新和突破性变化的信息,开发者们可以查看《jQuery 核心3.0 更新指南》

查看英文原文 Long-awaited jQuery 3.0 Brings Slim Build


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016 年 7 月 03 日 19:005117
用户头像

发布了 26 篇内容, 共 54183 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

全屋智能2020第十三届(南京)国际智能家居展览会

InfoQ_caf7dbb9aa8a

不愧是阿里大牛,竟然熬夜写了份《Spring MVC源码笔记》还整理成了文档,赶紧收藏!

Java成神之路

Java 编程 程序员 面试 Spring MVC

关于性别

北宋

京东T8Java架构师总结整理的15w字的Java面试手册,持续更新

Java成神之路

Java 编程 程序员 面试 JVM

Java基础知识面试题(2020最新版)

Java架构师迁哥

GrowingIO 智能运营产品微前端实践

GrowingIO技术专栏

微前端 智能运营

第一周作业,UML图

等燕归

架构师训练营第一期-第一周课后-作业一

共享内存原理与VCS监控采集实战

vivo互联网技术

监控 中间件 架构设计 数据采集 埋点

我擦~字符串转字节切片后,切片的容量竟然千奇百怪

新世界杂货铺

golang 后端 后端开发

两月复习拿到阿里offer(Java开发),分享我的复习思路及资源

Java成神之路

Java 编程 程序员 面试 JVM

JDK15正式发布,划时代的ZGC同时宣布转正

YourBatman

ZGC JDK15

正则表达式

菜鸟小sailor 🐕

爬虫

Rust闭包的虫洞穿梭

袁承兴

rust 函数式编程 闭包

Linux一键部署包,环境安装不用愁!!!

不才陈某

程序员 「Java 25周年」

Copy攻城狮辛酸史:含泪“一分钟”跑通MindSpore的LeNet模型

华为云开发者社区

学习 程序员 mindspore

手写一个抖音视频去水印工具,千万别刚一个程序员

程序员内点事

Java springboot

面试官:哪些场景会产生OOM?怎么解决?

艾小仙

Java 架构 面试 编程语言 JVM

架构师训练营第一期-第一周课后 - 作业二

JDK15正式发布,新增功能预览!

王磊

Java

分布式系统:数据一致性解决方案

马迪奥

分布式事务 一致性

百度大脑助力旅游场景智能解决方案落地

百度大脑

2020年6月最新iOS面试题总结

iOSer

ios 2020 面试题 经验总结

Docker Swarm 集群管理利器核心概念扫盲

哈喽沃德先生

Docker Docker Swarm 容器 容器云 容器化

智能门禁的音视频技术应用

anyRTC开发者

音视频 WebRTC 直播 RTC

学习笔记丨浮点数探究

Liuchengz.

C语言 基本数据类型

百度大脑事件图谱:洞察复杂世界中的事件知识

百度大脑

值得学习!阿里P8架构师“墙裂”推荐:Java程序员必读的架构书籍

Java成神之路

Java 编程 程序员 面试 书籍

Code Like Sync, Works Like Async

滴滴普惠出行

Apache Pulsar 社区周报|09-05 ~ 09-11

Apache Pulsar

开源 云原生 Apache Pulsar 消息中间件

餐卡系统设计文档

追风

等待已久的jQuery 3.0带来了更精简的编译-InfoQ