18岁的 jQuery 依然坚挺? v3.7.0 最新发布!

大家好,很高兴又见面了,我是\”高级前端进阶\”,由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!

jQuery v3.7.0 已发布,此版本包含众多内容更新,比如:错误修复、新方法和性能改进。 jQuery v3.7.0 放弃了长期使用的选择器引擎 Sizzle,同时将它移到了 jQuery 核心中,从而有助于为未来 jQuery 版本选择的进一步变更做好准备。 但这个技术方案确实使得 jQuery 减少了几个字节的体积,因为 Sizzle 需要支持比 jQuery 更旧的浏览器。

像往常一样,该版本可在 cdn 和 npm 包管理器上下载安装, 其他第三方 CDN 很快也会集成但可能需要一定的时间。

一些 API,如 .prevAll()以相反的顺序返回元素,这在与包装方法一起使用时可能会导致一些令人困惑的行为。 例如,

上面的代码会按预期包装所有元素,但会以相反的顺序将这些元素写入 DOM。 为了防止破坏现有代码的方式解决这个问题,jQuery 记录了 .prevAll() 和类似方法返回倒序集合,这在许多情况下仍然是可取的。 同时 jQuery v3.7.0 还添加了一个新方法,如 .uniqueSort(),该方法与 jQuery.uniqueSort()行为类似。

因此,之前的示例将变为:

并且 DOM 中的元素顺序将保持不变。

jQuery 3.7.0 添加了对更多 CSS 属性的支持,这些属性在没有单位的情况下不应自动添加“px”。 例如.css(\’aspect-ratio\’, 5) 会导致 CSS aspect-ratio: 5px;,这次更改很多都来自于 React 的启发。

值得注意的是,jQuery v4.0 将改变处理无单位 CSS 属性的方式,不是依赖 CSS 属性列表来避免添加“px”,而是有一个属性列表,当没有传递任何单位时,肯定要添加“px”, 那样更具前瞻性。

jQuery 3.7.0 在使用 .append() 等操作方法时为某些用例带来了可衡量的性能改进。 当删除不再支持的浏览器的支持测试时,这意味着根本不再需要运行针对文档更改的检查。

从本质上讲,这导致了 0% 到 100% 之间的任何加速。 最显著的加速出现在一些罕见的情况下,在这些情况下,用户经常在不同文档之间切换上下文,可能是通过跨多个 iframe 运行操作。

jQuery v3.3.0 修复了一个问题,在 .innerWidth() 和 .innerHeight() 的计算中包含滚动条。 但是,该修复没有考虑负边距,这意味着 .outerWidth(true) 和 .outerHeight(true) 不再考虑负边距。 在 3.7.0 中通过将边距计算与滚动条调整分开来解决了这个问题。

焦点和 blur 事件可能是 jQuery 必须跨浏览器处理的最复杂的事件。 jQuery 3.4.0 在修复通过焦点事件传递数据的问题时引入了一些小的回归,在 jQuery 3.7.0 中移除了这些修改。

但是,需要指出 IE 中可能发生的重大变化。 在所有版本的 IE 中,焦点和 blur 事件都是异步触发的。 在所有其他浏览器中,这些事件是同步触发的,IE 中的异步行为导致了一些问题。 解决方法是更改本机使用的事件。 幸运的是,focusin 和 focusout 在 IE 中是同步运行的,所以现在在 IE 中通过 focusin 模拟焦点,通过 focusout 模拟 blur。 这一更改使 jQuery 能够依赖 IE 中的同步焦点事件,这解决了很多问题。

https://blog.jquery.com/2023/05/11/jquery-3-7-0-released-staying-in-order/

JavaScript学习笔记(三十二)—jQuery(中)

jQuery

  • 昨天讲了 jQuery 的基本选择器筛选器和属性操作
  • 今天来说一些 jQuery 别的东西

元素操作

  • 创建一个元素
  • 内部插入元素
  • 外部插入元素
  • 替换元素
  • 删除元素
  • 克隆元素

元素尺寸

  • 操作元素的宽和高
  • 获取元素的内置宽和高
  • 获取元素的外置宽和高

元素位置

  • 元素相对页面的位置
  • 元素相对于父元素的偏移量
  • 获取页面卷去的高度和宽度

元素事件

  • 绑定事件的方法
  • 移除事件
  • 只能执行一次的事件
  • 直接触发事件

可以直接使用的常见事件

  • 可以直接使用的事件就是可以不利用 on 来绑定,直接就可以使用的事件方法
  • click
  • dblclick
  • scroll
  • hover

动画

  • show
  • hide
  • toggle
  • animate
  • stop
  • finish

jQuery

jQuery是对JavaScript的封装,它是免费、开源的JavaScript函数库,jQuery 极大地简化了 JavaScript 编程

jQuery和JavaScript它们的作用一样,都是负责网页行为操作,增加网页和用户的交互效果的,只不过jQuery简化了JavaScript编程,jQuery实现交互效果更简单

jQuery的下载地址:

https://code.jquery.com

jQuery引入

jQuery的入口函数:

我们知道使用js获取标签元素,需要页面加载完成以后再获取,我们通过使用onload事件来获取标签元素

而jQuery提供了ready函数来解决这个问题,保证获取标签元素没有问题,它的速度比原生的 window.onload 更快

jquery选择器就是快速选择标签元素,获取标签的,选择规则和css选择器一样

jQuery选择器的种类:

  1. 标签选择器是根据标签名来选择标签
  2. 类选择器是根据类名来选择标签
  3. id选择器是根据id来选择标签
  4. 层级选择器是根据层级关系来选择标签
  5. 属性选择器是根据属性名来选择标签

判断标签是否选择成功:

可以使用length属性来判断标签是否选择成功, 如果length大于0表示选择成功,否则选择失败

选择集过滤就是在选择标签的集合里面过滤自己需要的标签

①has(选择器名称)方法,表示选取包含指定选择器的标签

②eq(索引)方法,表示选取指定索引的标签

选择集转移就是以选择的标签为参照,然后获取转移后的标签

$(\’#box\’).prev(); 表示选择id是box元素的上一个的同级元素

$(\’#box\’).prevAll(); 表示选择id是box元素的上面所有的同级元素

$(\’#box\’).next(); 表示选择id是box元素的下一个的同级元素

$(\’#box\’).nextAll(); 表示选择id是box元素的下面所有的同级元素

$(\’#box\’).parent(); 表示选择id是box元素的父元素

$(\’#box\’).children(); 表示选择id是box元素的所有子元素

$(\’#box\’).siblings(); 表示选择id是box元素的其它同级元素

$(\’#box\’).find(\’.myClass\’); 表示选择id是box元素的class等于myClass的元素

获取和设置元素的内容使用: html方法

给指定元素追加html内容使用: append方法

获取和修改标签样式:

使用css方法可以给标签设置样式属性

获取和设置标签属性:

通过prop方法来完成

获取和设置元素的value属性:

通过val方法来完成,更加简单和方便

常用事件:

click() 鼠标单击

blur() 元素失去焦点

focus() 元素获得焦点

mouseover() 鼠标进入(进入子元素也触发)

mouseout() 鼠标离开(离开子元素也触发)

ready() DOM加载完成

事件代理:

事件代理就是使用父元素来代理子元素的事件,好处是减少事件的绑定次数,提高性能

事件代理使用场景:

使用场景当多个相同的子元素绑定同一个事件,可以使用事件代理

事件代理方法:

事件代理是使用delegate方法来完成

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数等都可以认为是对象,此外,JavaScript 允许自定义对象,对象可以拥有属性和方法

创建自定义javascript对象有两种方式:

①通过顶级Object类型来实例化一个对象

②通过对象字面量创建一个对象

(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式

采用完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使

得 JSON 成为理想的数据交换语言

JSON的优点:

易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

JSON的格式:

①对象格式

②数组格式

对象格式:

对象格式的JSON数据,使用一对大括号({}),大括号里面放入key:value形式的键值对,多个键值对使用逗号分隔

数组格式:

数组格式的JSON数据,使用一对中括号([]),中括号里面的数据使用逗号分隔

JSON本质上是字符串,如果在js中操作JSON数据,可以将JSON字符串转化为JavaScript对象

一次完整的请求后,浏览器会接受到html,css,js,图片等大量的数据

ajax的介绍

ajax 是 Asynchronous JavaScript and XML的简写,ajax一个前后台配合的技术,它可以让 javascript 发送异步的 http 请求,与后台通信进行数据的获取,ajax 最大的优点是实现局部刷新,ajax可以发送http请求,当获取到后台数据的时候更新页面显示数据实现局部刷新,在这里大家只需要记住,当前端页面想和后台服务器进行数据交互就可以使用ajax了

ajax的实现

jquery将它封装成了一个方法$.ajax()

我们可以直接用这个方法来执行ajax请求

ajax方法的参数说明:

url 请求地址

type 请求方式,默认是\’GET\’,常用的还有\’POST\’

dataType 设置返回的数据格式,常用的是\’json\’格式

data 设置发送给服务器的数据,没有参数不需要设置

success 设置请求成功后的回调函数

error 设置请求失败后的回调函数

async 设置是否异步,默认值是\’true\’,表示异步,一般不用写

ajax的简写方式:

$.ajax按照请求方式可以简写成

$.get或者$.post方式

$.get和$.post方法的参数说明:

$.get(url,data,success(data, status, xhr),dataType).error(func)$.post(url,data,success(data, status, xhr),dataType).error(func)

url 请求地址

data 设置发送给服务器的数据,没有参数不需要设置

success 设置请求成功后的回调函数

data 请求的结果数据

status 请求的状态信息, 比如: \”success\”

xhr 底层发送http请求XMLHttpRequest对象

dataType 设置返回的数据格式

\”xml\”

\”html\”

\”text\”

\”json\”

error 表示错误异常处理

func 错误异常回调函数

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。