jQuery,这个曾经主宰前端开发的JavaScript框架,最近发布了4.0 beta版本,标志着它进入了一个新的阶段。尽管新的框架和库层出不穷,jQuery凭借其广泛的功能积累和庞大的用户基础,在前端领域依然保持着一席之地。
那么,曾经的前端霸主jQuery,今天的地位如何呢?本文将分享jQuery 4.0更新的亮点,回顾其辉煌的发展历程,并讨论jQuery的未来前景。
jQuery 4.0更新亮点
经过慎重准备,jQuery团队终于发布了v4.0的beta版本!这个版本带来了错误修复、性能提升和显著变化,最值得注意的是放弃了对IE<11的支持,以更好地适应现代web标准。jQuery团队长期寻求的重大改进在jQuery 4.0.0 beta中得以实现,包括清除多余代码、淘汰已废弃的API、移除未发布的内部参数,以及简化过于复杂的“魔法”行为。
让我们来看看4.0版本带来了哪些更新。
向IE<11说再见
随着技术的进步,jQuery 4.0决定停止支持IE10及更早版本的浏览器。我们计划在未来的版本中(jQuery 5.0)进一步缩小浏览器支持范围。这次更新移除了专为旧版本IE设计的代码,使代码库更加高效。我们也停止了对其他过时浏览器的支持,如Edge Legacy、iOS和Firefox的旧版本,以及原生Android浏览器。如果您需要支持这些浏览器,可以使用jQuery 3.x。
移除已废弃的API
多个版本中已废弃的几个函数终于在主版本中走到了尽头。这些函数要么是为内部使用而设计,要么对于所有支持的浏览器都有原生的替代方案。具体包括:
- jQuery.cssNumber
- jQuery.cssProps
- jQuery.isArray
- jQuery.parseJSON
- jQuery.nodeName
- jQuery.isFunction
- jQuery.isWindow
- jQuery.camelCase
- jQuery.type
- jQuery.now
- jQuery.isNumeric
- jQuery.trim
- jQuery.fx.interval
如果您的代码使用了这些函数,请务必更新它,以使用相应的原生方法或替代函数,确保与jQuery的最新版本兼容。
其他变化
- 移除特定方法:jQuery 4.0移除了一些设计用于内部使用的数组方法,包括push、sort和splice。开发者应更新他们的代码,以使用标准数组方法代替。
- 事件顺序变化:jQuery 4.0中focusin和focusout事件的处理顺序发生了变化,以符合最新的W3C规范。这可能会影响依赖旧顺序的插件或代码。新的顺序是:blur -> focusout -> focus -> focusin。
- jQuery.ajax添加FormData支持:jQuery.ajax现在可以自动处理二进制数据,包括FormData,无需额外配置。
- 移除JSONP自动转换:jQuery 4.0不再自动将dataType:“json”和提供的回调函数转换为JSONP请求。现在推荐使用CORS进行跨域交互,因为它在jQuery 4.0支持的所有浏览器中都有效。这有助于避免在不知情的情况下执行来自远程域的代码。
jQuery源代码迁移到ES模块
jQuery主分支的源代码已从AMD迁移到ES模块。尽管jQuery的源代码一直在npm和GitHub上与发布版本一起提供,但之前没有使用RequireJS无法直接作为模块导入。现在,jQuery使用Rollup进行打包,所有测试分别在ES模块上运行。
受信任类型和CSP支持
jQuery 4.0现在支持受信任类型,允许使用包装在TrustedHTML中的HTML作为jQuery操作方法的输入,同时遵守内容安全策略的require-trusted-types-for指令。
此外,为了避免CSP错误,jQuery 4.0已将大多数异步脚本请求从使用XHR改为使用<script>标签。XHR仅在特定情况下继续使用(例如使用“headers”选项时)。对于需要支持IE11的情况,建议使用主构建版本或添加原生Promises的polyfill。
更精简的构建版本
jQuery 4.0的精简构建版本经过优化,移除了Deferreds和Callbacks,进一步减小了它们的大小(压缩到不到20k)。虽然Deferreds提供了一些原生Promises没有的功能,但在大多数情况下,可以代替使用原生Promises。对于需要支持IE11的用户,建议使用主构建版本。
jQuery发展历史
什么是jQuery?
jQuery是一个快速、简洁的JavaScript框架。它最初发布是为了简化JavaScript编程并提供跨浏览器兼容性。在web开发的早期,不同浏览器在JavaScript实现上有显著差异,这使得编写跨浏览器的JavaScript代码非常困难。jQuery旨在通过提供一致的API,使JavaScript编程简化,更容易开发跨浏览器代码。
jQuery的出现
jQuery的历史可以追溯到2005年,当时John Resig开始开发一个名为“Behaviour”的库,旨在简化JavaScript编程。然而,他发现这个库太大且过于复杂,于是决定开发一个更轻巧、用户友好的JavaScript库,这就是jQuery的原型。
2006年1月,John Resig宣布发布了他的库,命名为jQuery。初始版本已经支持CSS选择器、事件处理和AJAX交互,其独特的链式语法和简洁的多用途接口受到了广泛赞誉。随着版本的迭代,jQuery逐渐增加了对动画效果、插件扩展的支持,使得开发者在web开发中使用JavaScript变得更加容易。
jQuery的影响
jQuery对web开发产生了重大影响,使得JavaScript编程对开发者来说更加可接近,并显著提高了跨浏览器的兼容性。许多网站和web应用仍然依赖于jQuery,因为它的易用性、广泛的插件生态系统和对老旧浏览器的兼容性。
jQuery还有相关性吗?
随着React、Angular和Vue.js等现代JavaScript框架和库的崛起,一些开发者质疑jQuery在现代web开发中的相关性。然而,出于几个原因,jQuery在web开发中仍然有一席之地:
- 遗留浏览器支持:许多网站和web应用仍需要支持如IE11这样的老旧浏览器,这些浏览器缺乏对现代JavaScript特性的支持。jQuery提供了一个桥梁,允许开发者编写在广泛的浏览器版本中都能工作的代码。
- 易用性:jQuery的简洁语法和广泛的文档使得开发者易于学习和使用。对于web开发新手或那些更喜欢简单直接的JavaScript编程方法的开发者来说,jQuery仍然是一个吸引人的选择。
- 插件生态系统:jQuery的广泛插件生态系统为开发者提供了大量预构建的解决方案,用于常见的web开发任务,如表单验证、图片滑块和AJAX交互。这个生态系统通过允许开发者利用现有解决方案而不是重新发明轮子,节省了开发者的时间和精力。
- 与其他框架的集成:许多现代JavaScript框架和库,如React和Vue.js,可以与jQuery共存,允许开发者在利用其他框架的优势进行应用开发的同时,使用jQuery完成特定任务。这种灵活性使得jQuery即使在现代web开发环境中也是开发者工具箱中的宝贵工具。
尽管jQuery可能不再是前端开发领域的主导力量,但它在现代web开发中仍然有其位置,因为它对遗留浏览器的支持、易用性、广泛的插件生态系统和与其他框架的集成。随着jQuery 4.0 beta的发布,jQuery团队展示了他们保持jQuery在不断发展的web开发生态系统中相关性的承诺。那么,你认为jQuery还有存在的意义吗?