load、$(document).ready、DOMContentLoaded的区别

简介: load、$(document).ready、DOMContentLoaded的区别

load$(document).readyDOMContentLoaded 是用于处理页面加载和文档准备就绪的事件和方法。它们有以下区别:

  1. load 事件:load 事件在整个页面及其所有外部资源(如图像、样式表、脚本等)都加载完成后触发。可以通过 JavaScript 或 jQuery 来监听 load 事件,例如:

    window.addEventListener('load', function() {
         
      // 页面和所有资源加载完成后执行的代码
    });
    
    $(window).on('load', function() {
         
      // 页面和所有资源加载完成后执行的代码
    });
    

    load 事件适用于在页面完全加载后执行一些操作,例如处理图像的尺寸、启动动画效果等。

  2. $(document).ready(又称为 jQuery 的 DOM 就绪事件):$(document).ready 是 jQuery 提供的方法,它在文档结构准备完毕并可以操作时触发。它表示 DOM 已经解析完毕,但可能仍在等待外部资源的加载完成。可以使用以下方式监听 $(document).ready 事件:

    $(document).ready(function() {
         
      // DOM 准备就绪后执行的代码
    });
    

    或者使用简化的写法:

    $(function() {
         
      // DOM 准备就绪后执行的代码
    });
    

    $(document).ready 事件适用于在 DOM 解析完毕后执行一些操作,例如绑定事件处理程序、修改 DOM 元素等。需要注意的是,现代版本的 jQuery 已经对 $(document).ready 进行了优化,使其在大多数情况下不再需要显式调用。

  3. DOMContentLoaded 事件:DOMContentLoaded 事件是原生 JavaScript 提供的事件,当整个 HTML 文档被解析并转化为 DOM 树时触发。可以使用以下方式监听 DOMContentLoaded 事件:

    document.addEventListener('DOMContentLoaded', function() {
         
      // DOM 准备就绪后执行的代码
    });
    

    DOMContentLoaded 事件与 $(document).ready 事件类似,表示 DOM 结构已经准备好,可以进行操作。但与 $(document).ready 不同,DOMContentLoaded 是原生 JavaScript 的事件,不依赖于任何库或框架。

总结来说,load 事件在整个页面和资源加载完成后触发,$(document).ready 事件在 DOM 结构准备就绪后触发(使用 jQuery),而 DOMContentLoaded 事件在 DOM 解析完成后触发(原生 JavaScript)。

注意:在使用 load 事件或 $(document).ready 事件时,确保它们在实际需要时才被触发,以避免不必要的延迟。而 DOMContentLoaded 事件是一个原生事件,无需担心触发时机的问题。

相关文章
|
移动开发 JavaScript 安全
Vue 应用程序性能优化:代码压缩、加密和混淆配置详解
Vue 应用程序性能优化:代码压缩、加密和混淆配置详解
933 0
|
域名解析 网络协议 安全
DNS&BIND9安装配置
DNS概念,BIND9的详细配置安装
2492 2
|
9月前
|
缓存 监控 前端开发
前端静态资源加载优化
本文系统讲解前端静态资源加载优化,涵盖资源压缩、缓存策略、CDN加速、懒加载、预加载、HTTP/2升级等十大核心维度,结合Webpack配置与实战案例,助力开发者提升页面性能,打造极致用户体验。
624 0
|
缓存 JavaScript 前端开发
WebView完全解读
WebView完全解读
1507 133
|
Linux C++ iOS开发
vs code常见的查找快捷键大全
本文来自 frozencola 技术日志,介绍了 VS Code 中常用的查找快捷键,包括快速打开文件、文件资源管理器、全局搜索、查找符号、查找文件中的文本、查找并替换、文件导航和使用命令面板。掌握这些快捷键可以显著提升开发效率。
1910 4
|
JavaScript Windows
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
847 0
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
1046 4
|
安全 数据安全/隐私保护
深入解析 https
在使用HTTP协议时,数据传输是明文形式,容易遭受运营商劫持等安全问题,如篡改返回网页内容、修改Referer字段等。为解决这些问题,引入了HTTPS协议,它通过加密、认证和完整性保护,确保通信内容不被第三方窃听或篡改。HTTPS结合了对称加密和非对称加密,使用公钥加密对称密钥,私钥解密,确保数据安全性和传输效率。然而,中间人攻击仍可能破解这一机制,因此引入证书机制,客户端通过验证证书中的数字签名来确认公钥的有效性,从而保障数据传输的安全性。
631 0
|
Windows
Windows批处理(BAT)文件执行时“一闪而过或闪退”问题及解决方法
Windows批处理(BAT)文件执行时“一闪而过或闪退”问题及解决方法
12616 1
|
存储 开发框架 JavaScript
程序与技术分享:CKEditor与CKFinder使用
程序与技术分享:CKEditor与CKFinder使用
841 0

热门文章

最新文章