页面加载完成后再执行JS的jquery写法以及区别说明

在网页中,我们经常需要在页面加载完成后再执行一些 JavaScript 代码。这个需求非常普遍,比如我们需要在 DOM 树构建完成后再去操作元素,或者需要等待图片等资源加载完成后再进行后续的逻辑处理。在这种需求下,我们可以使用 JQuery 提供的 ready() 方法来处理,同时,使用 ready() 方法还有一定的性能优势。下面是详细的攻略:

什么是 jQuery.ready()?

jQuery.ready() 方法是 jQuery 提供的一种特殊的方法,用于在页面 DOM 结构准备好之后立即执行 JavaScript 代码。此时,所有的 DOM 树结构都已经构建完毕,但是可能不包含图片等资源。ready() 方法与 window.onload 方法有相似的作用,但不同的是 jQuery 生命周期函数等待的是页面 DOM 树结构的构建,而 onload 事件确保所有的资源都已经加载完成。

ready() 方法的使用方法

ready() 方法可以直接用于文档对象上,以便在页面 DOM 树结构构建完成后立刻执行 JavaScript 代码。下面是一个简单的 ready() 方法的使用示例:

$(document).ready(function() {
  // DOM 树结构构建完成后立刻执行此函数体中的代码
});

在上面的例子中,我们通过 jQuery 选择器获取文档对象,并为其注册 ready() 事件的回调函数。当 DOM 文档结构准备好之后,ready() 方法会触发注册的回调函数,从而执行业务逻辑代码。

如果您希望使用简洁的语法来绑定 ready() 事件,可以参考下面的代码:

$(function() {
  // DOM 树结构构建完成后立刻执行此函数体中的代码
});

当然,这两种语法的作用是完全相同的,区别仅在于语法的简洁度和可读性。

使用 $(window).on('load', function() {}) 的区别

除了 ready() 方法以外,还有一种常见的等待页面元素加载完成的方法,那就是使用 window.onload 事件。当然,我们也可以使用 jQuery 提供的相应事件绑定方法,即:$(window).on('load',callback)。二者的区别是什么呢?

window.onload 事件确保所有的资源都已经加载完毕后才执行回调函数,相对来说,它的缺点就是等待的时间可能比较长,可能会给用户造成“卡顿”的感觉。而 ready() 方法的话,它也能够确保 DOM 结构已经构建完成,但是在资源加载完成之前就可以在页面上操作一些东西,提高了用户体验度。

同时,$(window).on('load', function() {}) 与 ready() 方法有一个明显的不同点在于触发时刻。window.onload 事件只在所有元素都加载完成之后才会触发,而 ready() 方法则是在 DOM 树构建完成之后就会触发。

举例说明

$(document).ready(function(){
    console.log("DOM树构建完毕后,立即执行此处代码!");
});
$(window).on('load', function() {
    console.log("页面全部资源加载完毕后执行此处代码!");
});

假设当前页面内容过多,单纯使用 $(document).ready() 可能会造成页面“卡顿”的情况,因此完美的解决方案应该是结合 “DOM树构建完毕后,立即执行此处代码!”和“页面全部资源加载完毕后执行此处代码!”这两种方法。可以这么理解,document.ready() 用来对页面DOM树构建完成之后需要立即执行的代码做什么,$(window).on('load', …) 页面资源加载完毕时需要执行的代码做什么。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:页面加载完成后再执行JS的jquery写法以及区别说明 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • ajax提交加载进度条示例代码

    下面是“ajax提交加载进度条示例代码”的完整攻略: 理解Ajax 在介绍示例代码之前,我们需要先了解什么是Ajax。Ajax指“异步JavaScript和XML”(Asynchronous JavaScript and XML),是一种用于创建快速动态网页的技术。通过使用Ajax,可以在不刷新整个网页的情况下,将部分数据提交给服务器进行处理和更新。这就为实…

    other 2023年6月25日
    00
  • Web开发中客户端的跳转与服务器端的跳转的区别

    在Web开发中,客户端(通常指浏览器端)的跳转和服务器端的跳转是两种不同的实现方式。 客户端跳转 客户端跳转通常指的是通过修改浏览器的URL地址栏,或者通过点击链接或按钮等操作,实现页面跳转的方式。这种跳转方式不涉及服务器端的任何处理,所有的跳转操作都是在客户端浏览器中进行的。如下面的示例代码所示: <!– 点击按钮实现跳转 –> <b…

    other 2023年6月27日
    00
  • C语言学习之函数知识总结

    C语言学习之函数知识总结 函数的定义和调用 函数是指一段封装好的代码块,可以做特定的任务或者返回一个值。在C语言中,函数可以通过以下方式定义: 返回值类型 函数名(参数1类型 参数1名, 参数2类型 参数2名, …) { //函数体 return 返回值; } 其中,返回值类型指的是函数计算出来的结果的类型,参数1类型和参数2类型指的是传递给函数的参数的…

    other 2023年6月27日
    00
  • python基于双向链表实现LFU算法

    Python基于双向链表实现LFU算法的攻略如下: 什么是LFU算法? LFU(Least Frequently Used)算法是一种低级别的缓存淘汰策略,可用于解决缓存溢出问题。简单来说,当缓存已满且需要为新数据腾出空间时,该算法会淘汰最不频繁使用的数据。 LFU算法如何实现? 针对缓存中每条数据,需要记录3个重要信息:key、value和frequenc…

    other 2023年6月27日
    00
  • php中强制下载文件的代码(解决了IE下中文文件名乱码问题)

    完整攻略: 当PHP脚本对文件的类型以及名字进行了设置后,在IE中下载时可能会出现文件名乱码的问题。解决该问题的方法是为下载文件设置正确的HTTP头信息。以下是PHP中强制下载文件的代码并解决IE下中文文件名乱码问题的完整攻略: 1.设置HTTP头信息 在PHP中使用header函数,设置以下HTTP头信息: Content-Description:文件描述…

    other 2023年6月26日
    00
  • spring BeanProcessor接口详解

    Spring BeanProcessor接口详解 概述 Spring BeanProcessor接口是Spring容器提供的一个扩展点,它可以在Bean实例化、属性注入、初始化等环节进行干预操作,提供了非常灵活的扩展方式。 Spring中BeanProcessor接口的实现方式有很多,常见的有BeanPostProcessor、InstantiationAw…

    other 2023年6月27日
    00
  • win10和win7下java开发环境配置教程

    Win10和Win7下Java开发环境配置教程 本篇攻略主要介绍在Win10和Win7两个操作系统下,如何配置Java开发环境。本文所使用的Java版本是Java SE 8。 步骤1:下载Java SE 8 首先,我们需要下载最新版本的Java SE 8 JDK,下载地址为:https://www.oracle.com/technetwork/java/ja…

    other 2023年6月27日
    00
  • JavaScript递归算法生成树形菜单

    生成树形菜单是前端开发中很常见的需求,而其中最常用的方法就是 JavaScript 递归算法。下面是一个完整的攻略: 1. 定义数据结构 在开始编写算法之前,我们需要确定菜单的数据结构。通常情况下,一棵树形结构的菜单包含以下属性: id:节点的唯一标识符 name:节点的名称 children:子节点,也是一个数组,里面存放着若干个和父节点的结构相同的节点 …

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部