JavaScript任务执行模式:同步与异步的奥秘

news2024/11/26 17:52:49

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

文章目录

    • 摘要:
    • 引言:
    • 正文:
      • 1. 同步任务执行模式🔧
      • 2. 异步任务执行模式🌟
      • 3. 异步任务执行模式的应用🌐
    • 总结:
    • 参考资料:

摘要:

本文将介绍JavaScript中同步和异步任务执行模式的概念,以及它们在实际开发中的应用。

引言:

在JavaScript中,任务的执行模式分为同步和异步两种。了解这两种执行模式对于开发者来说具有重要意义。

正文:

1. 同步任务执行模式🔧

同步任务执行模式是指代码按照书写的顺序依次执行。以下是一个示例:

console.log('Start');
setTimeout(() => {
  console.log('Timeout');
}, 1000);
console.log('End');

在这个示例中,代码将按照书写的顺序依次执行。首先输出’Start’,然后等待1秒钟,最后输出’End’。

2. 异步任务执行模式🌟

异步任务执行模式是指代码的执行不按照书写的顺序,而是按照任务队列的顺序执行。以下是一个示例:

console.log('Start');
setTimeout(() => {
  console.log('Timeout');
}, 1000);
console.log('End');

在这个示例中,代码的执行将不按照书写的顺序。首先输出’Start’,然后立即输出’End’,最后等待1秒钟输出’Timeout’。

3. 异步任务执行模式的应用🌐

异步任务执行模式在实际开发中有广泛的应用。以下是一些典型的应用场景:

  • 网络请求:在网络请求中,可以使用异步任务执行模式来处理异步操作,如Ajax请求、Fetch API等;
  • 事件处理:在事件处理中,可以使用异步任务执行模式来处理异步事件,如点击事件、输入事件等;
  • 定时器:在定时器中,可以使用异步任务执行模式来处理异步操作,如倒计时、定时更新等。

1. 网络请求

使用 XMLHttpRequest 进行网络请求:

function fetchData() {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            console.log(xhr.responseText);
        }
    };
    xhr.open("GET", "https://api.example.com/data", true);
    xhr.send();
}

使用 Fetch API 进行网络请求:

async function fetchData() {
    try {
        const response = await fetch("https://api.example.com/data");
        const data = await response.json();
        console.log(data);
    } catch (error) {
        console.error("Error fetching data:", error);
    }
}

2. 事件处理

点击事件处理:

document.getElementById("button").addEventListener("click", function() {
    console.log("Button clicked");
});

输入事件处理:

document.getElementById("input").addEventListener("input", function() {
    console.log("Input changed");
});

3. 定时器

倒计时:

function countdown(duration) {
    let timer = duration, minutes, seconds;
    setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        console.log(minutes + ":" + seconds);

        if (--timer < 0) {
            timer = duration;
        }
    }, 1000);
}

定时更新:

setInterval(function() {
    console.log("Data updated");
}, 5000);

这些代码案例展示了异步任务执行模式在实际开发中的应用,通过使用异步任务,可以提高代码的可读性和可维护性,同时提高程序的性能。

总结:

JavaScript中任务的执行模式分为同步和异步两种。了解这两种执行模式对于开发者来说具有重要意义。在实际开发中,合理使用异步任务执行模式可以提高代码的执行效率和用户体验。

参考资料:

  • JavaScript官方文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript

本文详细介绍了JavaScript中同步和异步任务执行模式的概念,以及它们在实际开发中的应用。希望对您有所帮助。如有疑问或建议,请随时与我交流。📧🎉

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

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

相关文章

如何在postman上提交文件格式的数据

如何在postman上提交文件格式的数据 今天在写一个文件上传的功能接口时&#xff0c;想用postman进行提交&#xff0c;花了些时间才找到在postman提交文件格式的数据。记录一下吧&#xff01; 1.打开postman&#xff0c;选择POST提交方式&#xff0c;然后在Params那一行的Head…

「C/C++ 01」volatile关键字 和 修改const修饰的变量

目录 一、修改const修饰的局部变量 二、无法修改const修饰的全局变量 三、volatile关键字 面试题】 一、修改const修饰的局部变量 可以通过指针和强转来修改const修饰的局部变量。 #include <iostream> using namespace std;int main(void) {const int a 1;int* pa (in…

Android BINDER是干嘛的?

1.系统架构 2.binder 源码位置&#xff1a; 与LINUX传统IPC对比

【Redis深度专题】「核心技术提升」高级特性之Lua脚本执行机制的实现与探究

高级特性之Lua脚本执行机制的实现与探究 内容梗概什么是LuaLua的应用Lua的特点Redis引入Lua脚本Redis中引入Lua的原因Lua脚本的原子处理能力Lua减少网络开销Lua脚本复用与提高效率 Redis中Lua的常用命令指令&#xff1a;EVAL指令格式案例介绍Redis函数&#xff1a;call和pcallr…

[NSSCTF]prize_p1

前言 之前做了p5 才知道还有p1到p4 遂来做一下 顺便复习一下反序列化 prize_p1 <META http-equiv"Content-Type" content"text/html; charsetutf-8" /><?phphighlight_file(__FILE__);class getflag{function __destruct(){echo getenv(&qu…

能源监控新方案:IEC104转MQTT网关在新能源发电中的应用

需求背景 近些年&#xff0c;我国新能源产业快速发展&#xff0c;光伏、风电等新能源项目高速增长&#xff0c;新能源发电已经成为国家能源结构的重要组成部分。 打造数字化、智能化、信息化的电力物联网系统&#xff0c;实现光伏风电等新能源发电站的远程监控、远程维护是新能…

企业气候风险披露、报表词频、文本分析数据集合(2007-2022年)

01、数据介绍 企业气候风险披露是指企业通过一定的方式&#xff0c;将气候变化对其影响、自身采取的应对措施等信息披露出来。这有助于投资者更准确地评估企业价值&#xff0c;发现投资机会&#xff0c;规避投资风险。解企业在气候风险方面的关注度和披露情况。 可以帮助利益…

系统调用 int 86 的过程

该图借鉴与 Linux系统调用全过程详解-高性能服务器开发&#xff0c;向作者致敬。

WPF之创建无外观控件

1&#xff0c;定义无外观控件。 定义默认样式&#xff0c;在其静态构造函数中调用DefaultStyleKeyProperty.OverrideMetadata()。 //设置默认样式DefaultStyleKeyProperty.OverrideMetadata(typeof(ColorPicker), new FrameworkPropertyMetadata(typeof(ColorPicker))); 在项目…

【喜报】科大睿智为武汉博睿英特科技高质量通过CMMI3级评估咨询工作

武汉博睿英特科技有限公司是信息通信技术产品、建筑智慧工程服务提供商。其拥有专注于航空、政府、教育、金融等多行业领域的资深团队&#xff0c;及时掌握最新信息通信应用技术&#xff0c;深刻理解行业业务流程&#xff0c;擅于整合市场优质资源&#xff0c;积极保持与高校产…

06_电子设计教程基础篇(学习视频推荐)

文章目录 前言一、基础视频1、电路原理3、模电4、高频电子线路5、电力电子技术6、数学物理方法7、电磁场与电磁波8、信号系统9、自动控制原理10、通信原理11、单片机原理 二、科普视频1、工科男孙老师2、达尔闻3、爱上半导体4、华秋商城5、JT硬件乐趣6、洋桃电子 三、教学视频1…

日期类的模拟实现

1.定义一个日期类 有关类的定义&#xff0c;首先是需要声明共有类和私有类的成员函数和成员变量。 这里我分了三个文件写&#xff0c;分别有Date.h&#xff0c;Date.cpp&#xff0c;test.cpp using namespace std; class Date { private:int _year;int _month;int _day;publ…

IF67负载的纳米纤维膜材料

IF67负载的纳米纤维膜材料是一种结合了ZIF67&#xff08;一种沸石咪唑酯骨架结构材料&#xff09;和纳米纤维膜的材料。这种材料的制备方法通常涉及以下步骤&#xff1a; 制备含有ZIF67纳米晶体的纺丝液。 将该纺丝液与另一纺丝液&#xff08;如聚乙烯醇缩丁醛或聚氨酯的纺丝液…

firebase:一款功能强大的Firebase数据库安全漏洞与错误配置检测工具

关于firebase firebase是一款针对Firebase数据库的安全工具&#xff0c;该工具基于Python 3开发&#xff0c;可以帮助广大研究人员针对目标Firebase数据库执行安全漏洞扫描、漏洞测试和错误配置检测等任务。 该工具专为红队研究人员设计&#xff0c;请在获得授权许可后再进行安…

Science Advances|用于非侵入性表型分析的全有机透明植物电子皮肤(植物电子皮肤/柔性电子)

新加坡国立大学 Chengkuo Lee和Eunyoung Chae团队,在期刊《Science Advances》上发布了一篇题为“All-organic transparent plant e-skin for noninvasive phenotyping”的论文。论文内容如下: 一、 摘要 植物生理的实时原位监测是建立精准农业表型平台的关键。此监测的一项…

CSS优惠券、卡券样式绘制

实现左右凹陷中间有虚线效果 效果图 实现思路 从效果图可以看到这个优惠券是左右两边凹陷&#xff0c;中间还有一条虚线&#xff0c;为了封装后插槽使用方便&#xff0c;把优惠券以虚线为准分了两部分。这样布局的好处是上部分内容和下部分都可以自定义&#xff0c;不受内容限…

cmake的使用方法: 单个源文件的编译

一. 简介 经过前一篇文章的学习&#xff0c;针对不同平台下编译 .c工程时&#xff0c;为了不用针对不同平台编写&#xff08;不同标准&#xff0c;不同规范&#xff09;Makefile文件&#xff0c;提出了 cmake工具&#xff0c;cmake可以解决跨平台编译的问题。 cmake 就是针对…

JAVA面试题---WEB部分

网络通讯 TCP与UDP TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、 可靠的、 基于 IP 的传输层协议。 UDP 是 User Datagram Protocol 的简称&#xff0c;中文名是用户数据报协议&#xff0c;是 OSI 参考模 型中的传输层协议&#xff0c;它是…

基于光伏电站真实数据集的深度学习预测模型(Python代码,深度学习五个模型)

效果视频链接&#xff1a;基于深度学习光伏预测系统&#xff08;五个模型&#xff09;_哔哩哔哩_bilibili 界面设计 注册界面 登录界面 主界面 展示界面 1.数据集来源 The SOLETE dataset 这里分别保存了不同间隔采样时间表格 1min是以1min 间隔采集的数据集 数据集截图&…

分享自己一篇在亚马逊云科技AWS官网发的Blog技术文章

小李哥在亚马逊AWS官网&#xff0c;作为第一作者发了自己的第一篇AWS Blog文章&#xff0c;也是自己今年在AWS官网的第11篇文章。文章主要内容是描述为出海的金融企业&#xff0c;搭建满足PCI-DSS合规、FIPS 140-2 Level 3安全标准的传输中数据加密云端方案&#xff0c;主要用于…