jQuery,这个曾经主宰前端开发的JavaScript框架,最近发布了4.0 beta版本,标志着它进入了一个新的阶段。尽管新的框架和库层出不穷,jQuery凭借其广泛的功能积累和庞大的用户基础,在前端领域依然保持着一席之地。
那么,曾经的前端霸主jQuery,今天的地位如何呢?本文将分享jQuery 4.0更新的亮点,回顾其辉煌的发展历程,并讨论jQuery的未来前景。
经过慎重准备,jQuery团队终于发布了v4.0的beta版本!这个版本带来了错误修复、性能提升和显著变化,最值得注意的是放弃了对IE<11的支持,以更好地适应现代web标准。jQuery团队长期寻求的重大改进在jQuery 4.0.0 beta中得以实现,包括清除多余代码、淘汰已废弃的API、移除未发布的内部参数,以及简化过于复杂的“魔法”行为。
让我们来看看4.0版本带来了哪些更新。
随着技术的进步,jQuery 4.0决定停止支持IE10及更早版本的浏览器。我们计划在未来的版本中(jQuery 5.0)进一步缩小浏览器支持范围。这次更新移除了专为旧版本IE设计的代码,使代码库更加高效。我们也停止了对其他过时浏览器的支持,如Edge Legacy、iOS和Firefox的旧版本,以及原生Android浏览器。如果您需要支持这些浏览器,可以使用jQuery 3.x。
多个版本中已废弃的几个函数终于在主版本中走到了尽头。这些函数要么是为内部使用而设计,要么对于所有支持的浏览器都有原生的替代方案。具体包括:
如果您的代码使用了这些函数,请务必更新它,以使用相应的原生方法或替代函数,确保与jQuery的最新版本兼容。
jQuery主分支的源代码已从AMD迁移到ES模块。尽管jQuery的源代码一直在npm和GitHub上与发布版本一起提供,但之前没有使用RequireJS无法直接作为模块导入。现在,jQuery使用Rollup进行打包,所有测试分别在ES模块上运行。
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是一个快速、简洁的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开发中仍然有一席之地:
尽管jQuery可能不再是前端开发领域的主导力量,但它在现代web开发中仍然有其位置,因为它对遗留浏览器的支持、易用性、广泛的插件生态系统和与其他框架的集成。随着jQuery 4.0 beta的发布,jQuery团队展示了他们保持jQuery在不断发展的web开发生态系统中相关性的承诺。那么,你认为jQuery还有存在的意义吗?