个人技术站点JASONWU

Keep Coding


  • 主页

  • 文章

  • 搜索

JavaScript 异步 vs 同步

新建: 2021-05-29 编辑: 2021-06-19   |   分类: JavaScript   | 字数: 521 字

同步代码

  • 代码按顺序一行一行执行
  • 当执行耗时操作时,后续代码只能等待当前代码执行完成后才能执行

比如 alert 函数就是同步代码。

JavaScript
1const p = document.querySelector('.paragraph');
2p.textContent = 'JS 修改后内容';
3alert('阻塞')
4p.style.color = 'red';
HTML
1<p class="paragraph">初始内容</p>
2
3<script src="index.js"></script>

异步代码

  • 只会在“后台”任务执行完成后执行
  • 非阻塞式,即后续代码不会等待异步代码执行完成后再执行。实际的效果就是,仿佛直接跳过了异步代码

比如 setTimeout 函数就是异步代码。

JavaScript
1const p = document.querySelector('.paragraph');
2setTimeout(() => {
3  p.textContent = 'JS 修改后内容';
4}, 3000);
5p.style.color = 'red';
HTML
1<p class="paragraph">初始内容</p>
2
3<script src="index.js"></script>

再比如 DOM 加载图片也属于异步操作。

JavaScript
 1const img = document.querySelector('.logo');
 2const p = document.querySelector('.paragraph');
 3
 4// DOM 加载图片是一个异步操作
 5img.src = 'logo.png';
 6
 7img.addEventListener('load', () => {
 8  // 在图片加载完成后触发
 9  p.textContent = '图片加载完成';
10});
11
12p.style.color = 'red';
HTML
1<img class="logo">
2<p class="paragraph">未加载图片</p>
3
4<script src="index.js"></script>

JS 中常见的异步操作

  • 定时器(setTimeout、setInterval)
  • DOM 加载图片
  • 定位 API(Geolocation API)
  • AJAX(Asynchronous JavaScript And XML)
#Async#

文章:JavaScript 异步 vs 同步

链接:https://www.wuxianjie.net/posts/js-async-vs-sync/

作者:吴仙杰

文章: 本博客文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议,转载请注明出处!

JavaScript 函数中的 this 值
JavaScript 异步原理:Event Loop
  • 文章目录
  • 站点概览
吴仙杰

吴仙杰

🔍 Ctrl+K / ⌘K

27 文章
9 分类
25 标签
邮箱 GitHub
  • 同步代码
  • 异步代码
    • JS 中常见的异步操作
© 2021-2025 吴仙杰 保留所有权利 All Rights Reserved
浙公网安备 33010302003726号 浙ICP备2021017187号-1
0%