jQuery 团队新近发布了 4.0 版本,首席开发者 Timmy Willison将它描述为“近 10 年来的第一个主要版本”。
这一版本已停止支持老旧淘汰的 IE(Internet Explorer)10,代码也已更新为使用 ECMAScript(ES)模块,但一些开发者认为,在为现代 Web 浏览器编写代码时,不再需要该库。
如各位所知,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 应用程序中。
作者:洛逸
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。