17611538698
info@21cto.com

jQuery 4.0 发布,这是自 2016 年以来的首个主版本

前端 0 14 21小时前
图片

jQuery 团队新近发布了 4.0 版本,首席开发者 Timmy Willison将它描述为“近 10 年来的第一个主要版本”。

这一版本已停止支持老旧淘汰的 IE(Internet Explorer)10,代码也已更新为使用 ECMAScript(ES)模块,但一些开发者认为,在为现代 Web 浏览器编写代码时,不再需要该库。

图片
使用JQuery 4的测试画面

如各位所知,jQuery 是一个小型开源 JavaScript 库,它简化了常见的编码任务,其 API 可以在多个 Web 浏览器上运行,即使存在不兼容性。

4.0 版本包含一些重大变更,但是 Willison 表示:大多数用户只需“极少的改动”即可平滑升级。

新版本中一部分 API 已被移除,并不是它们过时了,而是因为它们在现代浏览器中已有原生替代方案。此外,该版本不再支持 IE 10、Edge 旧版(Chromium 内核之前的版本)以及旧版 Firefox、Android 和 iOS 系统。

这些变更使得 jQuery 尺寸比之前更加小巧,使用 GZip 压缩后体积减少了 3KB 以上。同时,还有一个精简版,移除了 Ajax 模块和网页动画,体积进一步减少,只有 8KB。

过去,Web 浏览器在用户界面元素的焦点和失焦事件顺序上存在分歧。焦点事件发生在元素获得焦点时,而失焦事件发生在元素失去焦点时。由于除了失焦事件之外还有三个焦点事件:focus、focusin 和 focusout,因此事件顺序较为复杂。过去,浏览器对这些事件的触发顺序存在分歧,所以 jQuery 为了保持跨浏览器的一致性,覆盖了浏览器的原生行为。

W3C(万维网委员会)定义了一个规范,其中包含不同的事件顺序,现代浏览器现在都遵循该规范。jQuery 遵循浏览器的原生行为,这可能会导致依赖于 jQuery 覆盖行为的代码出现意外结果。

jQuery 4.0 新增了对可信类型(Trusted Types)的支持。这解决了跨站脚本攻击(XSS)的问题,攻击者可能利用外部代码设置不安全的元素属性,例如 `.innerHTML`。开发者可以设置内容安全策略(CSP)来强制使用可信类型,但之前的 jQuery 版本在某些 API 部分会违反此策略,而 4.0 版本修复了这个问题。

jQuery 由其创建者 John Resig 于 20 年前推出,当时浏览器兼容性问题十分普遍。能够编写能在 IE、Firefox 和 Safari 中正常运行的异步 JavaScript 代码是一件令人头疼的事。jQuery 解决了所有这些问题,并迅速在全世界流行起来,开发者们开始熟悉诸如 `$("#myspan")` 之类的函数来获取 DOM(文档对象模型)元素的引用,而无需像原生 JavaScript 那样使用 `document.getElementById("myspan")` 来实现类似的功能。 

因此,该库应用变得十分广泛。

根据w3techs 的调查,在我们所知的 JavaScript 库的所有网站中,有 88% 的网站都在使用它。这相当于所有网站的 70.9%。

图片

这意味着 jQuery 团队有责任不破坏网络,特别是许多网站直接从 jQuery CDN(内容分发网络)获取库。

然而,jQuery 也存在一些问题,一些开发者建议不要再使用它。首先是性能问题;虽然使用原生 JavaScript 通常速度更快,但这种差异可能并不明显。其次是旧版本会长期存在;w3techs 估计,仍有 19% 的网站在使用 jQuery,而该版本已经存在了十年之久。第三,随着 ECMAScript 标准和跨浏览器兼容性的进步,对 jQuery 的需求已经降低。

“15 年前我们到处都用这个东西。如果你现在要编写一个新的 Web 应用程序,我想不出有什么理由再使用它了。”一位用户在 4.0 版本发布后如此评论道。

不过,对此看法不一。显然原生 JavaScript 性能更佳,但 jQuery 代码通常更简洁,而且其 API 也依然易于使用。另一条评论称 jQuery 是“唯一合理的 JavaScript 库” ,并且很可能在未来很多年里继续嵌入到 Web 应用程序中。

作者:洛逸

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信