升级 jQuery:努力打造健康的 Web 生态

jQuery 对 Web 的影响始终是显而易见的。当 jQuery 在 2006 年首次推出时,几乎立即成为 Web 开发人员的基本工具。它简化了 JavaScript 编程,使操作 HTML 文档、处理事件、执行动画等变得更加容易。从那时起,它在 Web 标准和浏览器功能的演变中发挥了并将继续发挥重要作用。

随着现代 JavaScript 框架的兴起,选择在新项目中使用 jQuery 的开发人员可能会减少,但全球范围内的使用率仍然非常高。在分析 IDC 进行的一项调查结果后,OpenJS 基金会估计 90% 的网站都使用 jQuery。其中大约三分之一使用过时的版本。

作为 Healthy Web 检查活动的一部分,jQuery 团队和 OpenJS 基金会正在努力解决这个问题。本指南将解释为什么保持 jQuery 版本最新很重要,并引导您完成升级 jQuery 的过程。

安全性很重要

安全漏洞:与任何软件一样,jQuery 的代码库中可能包含安全漏洞。这些漏洞的范围从跨站脚本 (XSS) 漏洞到远程代码执行 (RCE) 等更严重的问题。当发现漏洞时,jQuery 团队会发布补丁和更新来解决这些漏洞。通过升级到最新版本的 jQuery,您可以确保您的应用程序受益于这些安全修复程序,从而降低被攻击者利用的风险。

安全最佳实践:较新版本的 jQuery 通常包含安全最佳实践和增强功能,以减轻常见的安全威胁。这些改进可能包括更严格的输入验证、改进对用户生成内容的处理以及更好地防御 XSS 攻击。通过升级,您可以采用这些最佳实践并加强应用程序的安全状况。

合规性要求:许多行业和监管框架要求组织维护最新的软件并及时解决已知的安全漏洞。如果未能升级 jQuery 并解决安全问题,可能会导致不遵守这些要求。

浏览器支持怎么样

jQuery 1.x、2.x 和 3.x 各自具有不同的受支持浏览器列表。然而,考虑到当前浏览器市场的使用情况,jQuery 3.x 支持的浏览器(包括 IE 9+)应该足以满足几乎所有情况。jQuery 4.x 仍将支持 IE11,尽管微软宣布正式不再支持。

如何升级 jQuery

jQuery 团队提供了 jQuery Migrate 插件,使 jQuery 的升级变得尽可能简单。它主要是作为一种开发工具,在浏览器控制台中生成警告消息,可用于识别和修复兼容性问题。它暂时恢复已弃用的功能和行为,以便在解决兼容性问题的同时,旧代码仍可在较新版本的 jQuery 上运行。

jQuery Migrate 有两个版本:1.x 和 3.x(没有 Migrate 2.x)。一次只能使用一个版本,但如果从 jQuery 1.9 之前的 jQuery 版本升级,您可能需要连续使用这两个版本。

例如,如果您当前的 jQuery 版本是 1.4.4,请首先使用 jQuery Migrate 1.x 升级到 jQuery 1.12.4,然后使用 jQuery Migrate 3.x 升级到最新的 jQuery,截至撰写本文时为 3.7.1。如果您当前的版本是 2.2.4,则只需使用 jQuery Migrate 3.x 升级到最新的 jQuery。

使用 jQuery 迁移

首先,在加载 jQuery 后将 jQuery Migrate 添加到您的页面。

<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<script src="https://code.jquery.com/jquery-migrate-3.4.1.js"></script>

然后,测试您的网站或应用程序。由于使用了不同的 jQuery API,jQuery Migrate 会将消息记录到控制台,警告有关任何弃用或重大更改的信息。一次解决一个警告。

最后,当控制台不再记录任何警告并且所有重大更改均已解决时,可以删除 jQuery Migrate 并且迁移完成!有关更多详细信息,请参阅 jQuery Migrate 自述文件。

jQuery 升级指南

当您正在寻找有关重大更改的更多详细信息,或者您只想查看每个版本的重大更改的完整列表时,jQuery 升级指南可能会很有帮助。 jQuery 1.9、3.0 和 3.5 的升级指南列出了这些版本中发生的所有重大更改。列出的大多数重大更改可能不适用于您的代码,但这些指南为每个更改添加了一些上下文和解释。

关于未来的 jQuery

随着 jQuery 4.0 的出现,您可能想知道升级到 jQuery 4.x 的过程是什么。答案是,与升级到 jQuery 3.x 一样,仍然可以一步完成。换句话说,在升级到 jQuery 4.x 之前不需要升级到 jQuery 3.x。您将能够直接从 1.9+ 升级到 jQuery 4.x。我们还将准备 jQuery 4.0 的升级指南。

最后

升级 jQuery 对于维护 Web 应用程序的安全性、性能和兼容性至关重要。通过遵循本指南中概述的步骤,您可以安全地升级到最新版本的 jQuery 并利用其新功能和改进,同时确保您的 Web 应用程序免受任何发现的漏洞的影响。请记住定期检查更新并随时了解新版本,以使您的代码库保持最新状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/828179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0开始用C写贪吃蛇(基于链表)

目录 1. 游戏背景 2. 游戏效果演示​编辑​编辑​编辑 3. 实现目标 4. 技术要点 5. 控制台程序 5.1 设置控制台窗口的长宽和名字 5.2 控制台屏幕上的坐标COORD 6.Win32 API 6.1 GetStdHandle 6.2 GetConsoleCursorInfo 6.3 CONSOLE_CURSOR_INFO 6.4 SetConsole…

Docker 网络与资源控制

一 Docker 网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根 据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默 认网关。因为在同…

带头循环双向链表专题

1. 双向链表的结构 带头链表⾥的头节点&#xff0c;实际为“哨兵位”&#xff0c;哨兵位节点不存储任何有效元素&#xff0c;只是站在这⾥“放哨 的” “哨兵位”存在的意义&#xff1a; 遍历循环链表避免死循环。 2. 双向链表的实现 2.1双向链表结构 typedef int DataTyp…

最新AI创作系统ChatGPT网站源码Midjourney-AI绘画系统,Suno-v3-AI音乐生成大模型。

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…

Java-校验规则Integer使用 @NotEmpty注解报错

ApiModelProperty(value "小组id")NotEmpty(message "小组id 不能为空")private Integer teamId; 1.假如不小心Integer使用NotEmpty注解报错 提示&#xff1a; No validator could be found for constraint javax.validation.constraints.NotEmpty va…

Ubuntu终端自动补全

文章目录 前言配置安装zsh安装 oh-my-zsh安装自动补全插件zsh-autosuggestions 参考 前言 Oh My Zsh 是一个针对命令行 shell 的开源框架&#xff0c;主要用于增强和美化命令行环境。它建立在 Zsh&#xff08;一种强大的 shell 替代品&#xff09;之上&#xff0c;提供了丰富的…

Kubernetes Kubelet 的 Cgroups 资源限制机制分析

前言 容器技术的两大技术基石&#xff0c;想必大家都有所了解&#xff0c;即 namespace 和 cgroups。但你知道 cgroups 是如何在 kubernetes 中发挥作用的吗&#xff1f;kubelet 都设置了哪些 cgroups 参数来实现对容器的资源限制的呢&#xff1f;本文就来扒一扒 Kubernetes k…

深度学习框架比较:TensorFlow vs PyTorch

TensorFlow和PyTorch是目前最流行的两个深度学习框架。它们都提供了强大的功能和灵活性&#xff0c;用于构建和训练复杂的深度学习模型。但是&#xff0c;它们在设计理念、用户体验和特定用例支持方面存在一些差异。以下是TensorFlow和PyTorch之间的比较&#xff0c;涵盖了它们…

使用队列对二叉树进行广度遍历

我们要对二叉树进行广度遍历&#xff0c;经典的数据结构就是队列&#xff0c;这也是许多算法题中要用到的基础&#xff0c;下面是一些基本思想 我们首先创建一个队列&#xff0c;开始遍历二叉树&#xff0c;这里记录一个值len&#xff0c;表示当前层有多少个元素&#xff0c;当…

Qt | 键盘事件

Qt | 鼠标事件第四节十、键盘事件 1、Qt 使用 QKeyEvent 类来描述与键盘有关的信息,比如按下或释放键的代码,使用枚举类型 QEvent::Type 描述与键盘有关的事件,比如 QEvent::KeyPress 表示键盘按下事件, QEvent::KeyRelease表示键盘释放事件等。 2、是否接收键盘事件,最…

STC8H8K64U I2C主机模式相关寄存器

STC8H8K64U I2C主机模式相关寄存器 STC8H8K64U-TSSOP20 I2CCFG I2C配置寄存器 I2CMSCR I2C主机控制寄存器 I2CMSST I2C主机状态寄存器 I2CMSAUX I2C主机辅助控制寄存器 I2CTXD I2C数据发送寄存器 I2CRXD I2C数据接收寄存器 I2CCFG I2C配置寄存器 B7ENI2C ENI2C&#xff1a…

文件多进程、多线程访问

处理多进程和多线程的文件读写操作需要确保对共享资源的访问是同步的&#xff0c;以防止数据竞争和不一致性。以下是一些常用的策略和工具&#xff1a; 多线程同步&#xff1a; 内置锁 (synchronized 关键字)&#xff1a;使用 Java 的 synchronized 关键字对代码块或方法进行同…

Android Compose页面跳转Demo

1.引入依赖 //jetpack compose导航 implementation("androidx.navigation:navigation-compose:2.5.3") 2.代码 import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundat…

基于Spring Boot的家具销售电商平台设计与实现

基于Spring Boot的家具销售电商平台设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 系统功能界面图&#xff0c;在系统首页可以查看首页…

Web集群_02

Web集群_01 Keepalived 概述 Keepalived实现了高可用集群 Keepalived最初是为LVS设计 , 专门监控各种服务器节点的状态 Keepalived 后加入了 VRRP 功能 , 防止单点故障 VRRP ( 虚拟冗余路由协议 ) VRRP能在不改变网组的情况下 , 将多台路由器虚拟成一个虚拟路由器 , 通过配…

【ZZULIOJ】1079: a+b(多实例测试2)(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述 计算AB 输入 输入数据有多组。 每组一行&#xff0c;为整数A, B。 输出 对每行输入&#xff0c;输出AB的值&#xff0c;单独占一行。 样例输入 Copy 1 2 3 4样例输出 Copy 3 7 提示 …

川宁生物环保方面优势明显合成生物学赋能未来

川宁生物一直秉持着"树立全球抗生素行业环保典范"的理念&#xff0c;在环保方面进行了大量的投入&#xff0c;总计超过27亿元人民币&#xff0c;占项目总投资的30%以上。川宁生物建设了一个占地面积超过300亩的环保系统&#xff0c;占厂区总面积的20%以上。在中国对抗…

《智能前沿:应对ChatGPT算力挑战》

在全球人工智能热潮中&#xff0c;以 ChatGPT 为代表的 AIGC 技术引发了广泛关注。人工智能和机器学习等技术对数据规模及处理速度等提出了更高要求。在数据成为主要生产要素的当下和未来&#xff0c;如何跟上时代的发展步伐&#xff0c;构建适应 AI 需求的数据中心&#xff0c…

基于Google Gemini 探索大语言模型在医学领域应用评估和前景

概述 近年来&#xff0c;大规模语言模型&#xff08;LLM&#xff09;在理解和生成人类语言方面取得了显著的飞跃&#xff0c;这些进步不仅推动了语言学和计算机编程的发展&#xff0c;还为多个领域带来了创新的突破。特别是模型如GPT-3和PaLM&#xff0c;它们通过吸收海量文本…