资讯专栏INFORMATION COLUMN

【JS基础】异步和单线程

Mr_zhang / 2690人阅读

摘要:同步和异步的区别是什么是单线程的,只能同时做一件事,所以就需要异步同步会阻塞代码执行,而异步不会是同步,是异步异步同步秒之后点击确认何时需要异步在可能发生等待的情况,等待过程中不能像一样阻塞程序进行。因此,所有等待的情况都需要异步。

同步和异步的区别是什么?

js是单线程的,只能同时做一件事,所以就需要异步
同步会阻塞代码执行,而异步不会
alert是同步,setTimeout是异步
// 异步
console.log(100);
setTimeout(function () {
    console.log(200);
}, 1000);
console.log(300);
// 同步
console.log(100);
alert(200); // 1秒之后点击确认
console.log(300);

何时需要异步?
在可能发生等待的情况,等待过程中不能像alert一样阻塞程序进行。因此,所有“等待的情况”都需要异步。

前端使用异步的场景有哪些?

定时任务:setTimeOut,setInterval
网络请求:ajax请求,动态 加载
事件绑定
// ajax请求
console.log("start");
$.get("./data1.json", function (data) {
    console.log(data);
});
console.log("end");
//  加载
console.log("start");
var img = document.createElement("img");
img.onload = function () {
    console.log("loaded");
};
img.src = "/xxx.png";
console.log("end");
// 事件绑定
console.log("start");
document.getElementById("btn1").addEventListener("click", function () {
    alert("clicked");
});
console.log("end");

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100200.html

相关文章

  • nodejs中的子进程,深入解析child_process模块和cluster模块

    摘要:严格来说,并不是单线程的。其他异步和事件驱动相关的线程通过来实现内部的线程池和线程调度。线程是最小的进程,因此也是单进程的。子进程中执行的是非程序,提供一组参数后,执行的结果以回调的形式返回。在子进程中通过和的机制来接收和发送消息。   node遵循的是单线程单进程的模式,node的单线程是指js的引擎只有一个实例,且在nodejs的主线程中执行,同时node以事件驱动的方式处理IO...

    JinB 评论0 收藏0
  • javascript高级学习总结(二)

    摘要:那个率先改变的实例的返回值,就会传递给的回调函数。函数对函数的改进,体现在以下四点内置执行器。进一步说,函数完全可以看作多个异步操作,包装成的一个对象,而命令就是内部命令的语法糖。中的本质就是没有的隐藏的组件。 1、原型 - jquery使用showImg(https://segmentfault.com/img/bVbwNcY?w=692&h=442);注释 : 实例虽然不同,但是构...

    Songlcy 评论0 收藏0
  • JavaScript从初级往高级走系列————异步

    摘要:之所以是单线程,取决于它的实际使用,例如不可能同添加一个和删除这个,所以它只能是单线程的。所以,这个新标准并没有改变单线程的本质。 原文博客地址:https://finget.github.io/2018/05/21/async/ 异步 什么是单线程,和异步有什么关系 什么是event-loop 是否用过jQuery的Deferred Promise的基本使用和原理 介绍一下asyn...

    andot 评论0 收藏0
  • JS原生一步步实现前端路由和单页面应用

    摘要:这里借鉴了一下的处理方式,我们把单独模块的包装成一个函数,提供一个全局的回调方法,加载完成时候再调用回调函数。 前端路由实现之 #hash 先上github项目地址: spa-routers运行效果图showImg(https://segmentfault.com/img/bVFi7l?w=581&h=312); 背景介绍 用了许多前端框架来做spa应用,比如说backbone,ang...

    leap_frog 评论0 收藏0
  • JS原生一步步实现前端路由和单页面应用

    摘要:这里借鉴了一下的处理方式,我们把单独模块的包装成一个函数,提供一个全局的回调方法,加载完成时候再调用回调函数。 前端路由实现之 #hash 先上github项目地址: spa-routers运行效果图showImg(https://segmentfault.com/img/bVFi7l?w=581&h=312); 背景介绍 用了许多前端框架来做spa应用,比如说backbone,ang...

    idealcn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<