我是靠谱客的博主 整齐鼠标,最近开发中收集的这篇文章主要介绍JS进阶5 -- 事件循环及JQuery的load与ready的区别5-事件循环及JQuery的load与ready的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JS进阶5 -- 事件循环及JQuery的load与ready的区别

  • 5-事件循环及JQuery的load与ready的区别
    • 5-1 事件循环
      • 5-1-1 宏观任务
      • 5-1-2 微观任务
    • 5-2 $(window).load 与 $(window).ready 的区别
      • 5-2-1 相同点
      • 5-2-2 区别
      • 5-2-3 加载顺序

在 JS进阶4 – 代理中我们学习了代理的使用方法和优点分析,本文将继续重点跟大家介绍JS中的第5个重点内容 – 事件循环及JQuery的load与ready的区别。废话不多说,一起来看看吧!

5-事件循环及JQuery的load与ready的区别

5-1 事件循环

  • JS是事件驱动程序,因此最底层都是以事件驱动完成函数的回调执行,例如当有触发某个事件的启动因素时,就会抛出事件,调用回调函数,但是这个过程并不是函数可以自己去回调,而是抛出事件后,将在任务队列中等待下一个执行时间立即调用函数。
  • 即使在同一个任务队列中也有先后执行的顺序,主要分为宏观任务和微观任务

5-1-1 宏观任务

  • 宏观任务是在当前任务队列的尾部抛出事件,等待下一次任务队列执行时间开始的时候执行
  • setInterval、setTimeout

5-1-2 微观任务

  • 微观任务一般是在当前任务的尾部抛出事件,下一次任务队列执行时间之前执行
  • process.nextTick、Promise
	var time = new Date().getTime();
    console.log('a');  // 同步任务
    setTimeout(function() {
        console.log(new Date().getTime() - time);  // 宏任务与微任务相比,执行时间更长
        console.log('b');  // 异步任务--宏任务
    }, 0);
    new Promise(function(res, rej) {
        res();
    }).then(function() {
        console.log(new Date().getTime() - time);
        console.log('c');  // 异步任务--微任务
    });
    console.log('d');  // 同步任务  // a d c b

5-2 $(window).load 与 $(window).ready 的区别

5-2-1 相同点

  • 这两个方法都是先加载后执行,但是有先后顺序,ready先执行,load后执行

5-2-2 区别

  • ready在图片媒体进来之前就可以运行代码了,而load需要等待全部完成后才可以执行代码

5-2-3 加载顺序

  • html结构
  • 加载外部样式表和执行文件
  • 解析执行脚本代码
  • 构造DOM模型(样式应用)-- ready执行
  • 加载图片文件等等
  • 页面加载完毕 – load执行
	<!DOCTYPE html>
	<html lang="en">
	<head>
	    <meta charset="UTF-8">
	    <meta http-equiv="X-UA-Compatible" content="IE=edge">
	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	    <title>$(window).load 与 $(window).ready 的区别</title>
	</head>
	<body>
	    <img src="./images/avater.jpg" alt="">
	    <img src="./images/cat1.jpeg" alt="">
	    <img src="./images/cat2.jpeg" alt="">
	    <img src="./images/cat3.jpeg" alt="">
	    <script src="jquery-3.5.1.min.js"></script>
	    <script>
	        // 先输出ready,再输出load
	        $(window).on("load", function() {
	            console.log('load');
	        });
	        $(window).ready(function() {
	            console.log('ready');
	        });
	    </script>
	</body>
	</html>

最后

以上就是整齐鼠标为你收集整理的JS进阶5 -- 事件循环及JQuery的load与ready的区别5-事件循环及JQuery的load与ready的区别的全部内容,希望文章能够帮你解决JS进阶5 -- 事件循环及JQuery的load与ready的区别5-事件循环及JQuery的load与ready的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部