HoRain云--JavaScript 异步编程
HoRain 云小助手个人主页⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。目录⛳️ 推荐异步的概念什么时候用异步编程回调函数实例实例实例异步 AJAX实例实例异步的概念异步Asynchronous, async是与同步Synchronous, sync相对的概念。在我们学习的传统单线程编程中程序的运行是同步的同步不意味着所有步骤同时运行而是指步骤在一个控制流序列中按顺序执行。而异步的概念则是不保证同步的概念也就是说一个异步过程的执行将不再与原有的序列有顺序关系。简单来理解就是同步按你的代码顺序执行异步不按照代码顺序执行异步的执行效率更高。以上是关于异步的概念的解释接下来我们通俗地解释一下异步异步就是从主线程发射一个子线程来完成任务。什么时候用异步编程在前端编程中甚至后端有时也是这样我们在处理一些简短、快速的操作时例如计算 1 1 的结果往往在主线程中就可以完成。主线程作为一个线程不能够同时接受多方面的请求。所以当一个事件没有结束时界面将无法处理其他请求。现在有一个按钮如果我们设置它的 onclick 事件为一个死循环那么当这个按钮按下整个网页将失去响应。为了避免这种情况的发生我们常常用子线程来完成一些可能消耗时间足够长以至于被用户察觉的事情比如读取一个大文件或者发出一个网络请求。因为子线程独立于主线程所以即使出现阻塞也不会影响主线程的运行。但是子线程有一个局限一旦发射了以后就会与主线程失去同步我们无法确定它的结束如果结束之后需要处理一些事情比如处理来自服务器的信息我们是无法将它合并到主线程中去的。为了解决这个问题JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理。回调函数回调函数就是一个函数它是在我们启动一个异步任务的时候就告诉它等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了他自己会善始善终。实例function print() { document.getElementById(demo).innerHTMLRUNOOB!; } setTimeout(print, 3000);这段程序中的 setTimeout 就是一个消耗时间较长3 秒的过程它的第一个参数是个回调函数第二个参数是毫秒数这个函数执行之后会产生一个子线程子线程会等待 3 秒然后执行回调函数 print在命令行输出 RUNOOB!。当然JavaScript 语法十分友好我们不必单独定义一个函数 print 我们常常将上面的程序写成实例setTimeout(function () { document.getElementById(demo).innerHTMLRUNOOB!; }, 3000);注意既然 setTimeout 会在子线程中等待 3 秒在 setTimeout 函数执行之后主线程并没有停止所以实例setTimeout(function () { document.getElementById(demo1).innerHTMLRUNOOB-1!; // 三秒后子线程执行 }, 3000); document.getElementById(demo2).innerHTMLRUNOOB-2!; // 主线程先执行这段程序的执行结果是RUNOOB-1! // 三秒后子线程执行 RUNOOB-2! // 主线程先执行异步 AJAX除了 setTimeout 函数以外异步回调广泛应用于 AJAX 编程。有关于 AJAX 详细请参见XMLHttpRequest 常常用于请求来自远程服务器上的 XML 或 JSON 数据。一个标准的 XMLHttpRequest 对象往往包含多个回调实例var xhr new XMLHttpRequest(); xhr.onload function () { // 输出接收到的文字数据 document.getElementById(demo).innerHTMLxhr.responseText; } xhr.onerror function () { document.getElementById(demo).innerHTML请求出错; } // 发送异步 GET 请求 xhr.open(GET, https://www.runoob.com/try/ajax/ajax_info.txt, true); xhr.send();XMLHttpRequest 的 onload 和 onerror 属性都是函数分别在它请求成功和请求失败时被调用。如果你使用完整的 jQuery 库也可以更加优雅的使用异步 AJAX实例$.get(https://www.runoob.com/try/ajax/demo_test.php,function(data,status){ alert(数据: data \n状态: status); });❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧

相关新闻

ECDICT开源词典数据库深度解析:150万词汇量的毫秒级查询实战指南

ECDICT开源词典数据库深度解析:150万词汇量的毫秒级查询实战指南

ECDICT开源词典数据库深度解析:150万词汇量的毫秒级查询实战指南 【免费下载链接】ECDICT Free English to Chinese Dictionary Database 项目地址: https://gitcode.com/gh_mirrors/ec/ECDICT 在当今数字化语言学习时代,ECDICT开源词典数据库以其…

2026/7/27 19:33:11 阅读更多 →
Sunshine游戏串流:5分钟打造你的私人游戏云终极指南

Sunshine游戏串流:5分钟打造你的私人游戏云终极指南

Sunshine游戏串流:5分钟打造你的私人游戏云终极指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经想过,将书房里的高性能游戏电脑搬到客厅大屏…

2026/7/27 19:33:11 阅读更多 →
3分钟生成爆款短视频:AI神器MoneyPrinterTurbo终极指南

3分钟生成爆款短视频:AI神器MoneyPrinterTurbo终极指南

3分钟生成爆款短视频:AI神器MoneyPrinterTurbo终极指南 【免费下载链接】MoneyPrinterTurbo 利用 AI 大模型和自动化工作流,根据主题或关键词一键生成高清短视频。Generate HD short videos from a topic or keyword with an automated AI workflow. 项…

2026/7/27 19:32:11 阅读更多 →

最新新闻

分库分表后SQL全崩?这些坑我替你踩完了

分库分表后SQL全崩?这些坑我替你踩完了

分库分表后SQL全崩?这些坑我替你踩完了 还记得我们第一次把2亿条订单数据拆成16个分片段上线的那天,本来信心满满觉得性能肯定能起飞,结果上线刚十分钟告警就炸了:订单列表接口超时率冲到35%,订单count统计接口最长要1…

2026/7/27 19:41:13 阅读更多 →
C++ CRC16校验:从原理到查表法与硬件优化的工程实践

C++ CRC16校验:从原理到查表法与硬件优化的工程实践

1. 项目概述:为什么CRC16校验在C开发中如此重要?在嵌入式通信、文件传输、网络协议这些对数据可靠性要求极高的领域,数据在传输或存储过程中,一个比特的翻转都可能导致灾难性的后果。想象一下,你通过串口向一台工业设备…

2026/7/27 19:41:13 阅读更多 →
如何用开源SDR工具搭建实时飞机监控系统:gr-adsb完整指南

如何用开源SDR工具搭建实时飞机监控系统:gr-adsb完整指南

如何用开源SDR工具搭建实时飞机监控系统:gr-adsb完整指南 【免费下载链接】gr-adsb GNU Radio OOT module for demodulating and decoding ADS-B packets 项目地址: https://gitcode.com/gh_mirrors/gr/gr-adsb 想要实时追踪飞机位置但专业设备太贵&#xff…

2026/7/27 19:41:13 阅读更多 →
SL6Pro 9KHz~6.4GHz 双通道便携射频信号源全解(对比 HT008B+SCPI 程控 Python 实战)便携式信号源9KHz-6.4GHz双通道单频扫频输出低相噪1hz分辨率

SL6Pro 9KHz~6.4GHz 双通道便携射频信号源全解(对比 HT008B+SCPI 程控 Python 实战)便携式信号源9KHz-6.4GHz双通道单频扫频输出低相噪1hz分辨率

一、前言在射频调试、无线通信、滤波器 / 天线测试、EMC 预兼容实验中,低频 9KHz 起步、6.4GHz 全覆盖、1Hz 超高分辨率一直是入门便携信号源的痛点。此前主流 HT008B 最低仅支持 50MHz,无法覆盖短波、射频低频电路测试;而SL6Pro 作为升级款便…

2026/7/27 19:41:13 阅读更多 →
C++ operator T()类型转换:原理、陷阱与ConfigValue实战

C++ operator T()类型转换:原理、陷阱与ConfigValue实战

1. 项目概述&#xff1a;为什么我们需要自定义类型转换&#xff1f;在C的世界里&#xff0c;类型转换无处不在。从简单的int a 3.14;&#xff08;隐式转换&#xff09;&#xff0c;到显式的static_cast<double>(a)&#xff0c;编译器为我们处理了大量的类型适配工作。然…

2026/7/27 19:41:13 阅读更多 →
DNNGraph Torch后端使用指南:Lua代码生成与现有Torch项目集成

DNNGraph Torch后端使用指南:Lua代码生成与现有Torch项目集成

DNNGraph Torch后端使用指南&#xff1a;Lua代码生成与现有Torch项目集成 【免费下载链接】dnngraph A DSL for deep neural networks, supporting Caffe and Torch 项目地址: https://gitcode.com/gh_mirrors/dn/dnngraph DNNGraph是一个强大的深度学习网络领域特定语言…

2026/7/27 19:40:13 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述&#xff1a;从寄存器手册到实战指南 如果你手头有一份类似德州仪器&#xff08;TI&#xff09;TMS320x240xA系列DSP的SPI模块技术手册&#xff0c;看着里面密密麻麻的寄存器位定义、时序图和公式&#xff0c;是不是感觉头大&#xff1f;这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻