摘要:同步和異步的區(qū)別是什么是單線程的,只能同時(shí)做一件事,所以就需要異步同步會(huì)阻塞代碼執(zhí)行,而異步不會(huì)是同步,是異步異步同步秒之后點(diǎn)擊確認(rèn)何時(shí)需要異步在可能發(fā)生等待的情況,等待過程中不能像一樣阻塞程序進(jìn)行。因此,所有等待的情況都需要異步。
同步和異步的區(qū)別是什么?
js是單線程的,只能同時(shí)做一件事,所以就需要異步
同步會(huì)阻塞代碼執(zhí)行,而異步不會(huì)
alert是同步,setTimeout是異步
// 異步 console.log(100); setTimeout(function () { console.log(200); }, 1000); console.log(300);
// 同步 console.log(100); alert(200); // 1秒之后點(diǎn)擊確認(rèn) console.log(300);
何時(shí)需要異步?
在可能發(fā)生等待的情況,等待過程中不能像alert一樣阻塞程序進(jìn)行。因此,所有“等待的情況”都需要異步。
前端使用異步的場(chǎng)景有哪些?
定時(shí)任務(wù):setTimeOut,setInterval
網(wǎng)絡(luò)請(qǐng)求:ajax請(qǐng)求,動(dòng)態(tài) 加載
事件綁定
// ajax請(qǐng)求 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");
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/100200.html
摘要:嚴(yán)格來說,并不是單線程的。其他異步和事件驅(qū)動(dòng)相關(guān)的線程通過來實(shí)現(xiàn)內(nèi)部的線程池和線程調(diào)度。線程是最小的進(jìn)程,因此也是單進(jìn)程的。子進(jìn)程中執(zhí)行的是非程序,提供一組參數(shù)后,執(zhí)行的結(jié)果以回調(diào)的形式返回。在子進(jìn)程中通過和的機(jī)制來接收和發(fā)送消息。 ??node遵循的是單線程單進(jìn)程的模式,node的單線程是指js的引擎只有一個(gè)實(shí)例,且在nodejs的主線程中執(zhí)行,同時(shí)node以事件驅(qū)動(dòng)的方式處理IO...
摘要:那個(gè)率先改變的實(shí)例的返回值,就會(huì)傳遞給的回調(diào)函數(shù)。函數(shù)對(duì)函數(shù)的改進(jìn),體現(xiàn)在以下四點(diǎn)內(nèi)置執(zhí)行器。進(jìn)一步說,函數(shù)完全可以看作多個(gè)異步操作,包裝成的一個(gè)對(duì)象,而命令就是內(nèi)部命令的語法糖。中的本質(zhì)就是沒有的隱藏的組件。 1、原型 - jquery使用showImg(https://segmentfault.com/img/bVbwNcY?w=692&h=442);注釋 : 實(shí)例雖然不同,但是構(gòu)...
摘要:之所以是單線程,取決于它的實(shí)際使用,例如不可能同添加一個(gè)和刪除這個(gè),所以它只能是單線程的。所以,這個(gè)新標(biāo)準(zhǔn)并沒有改變單線程的本質(zhì)。 原文博客地址:https://finget.github.io/2018/05/21/async/ 異步 什么是單線程,和異步有什么關(guān)系 什么是event-loop 是否用過jQuery的Deferred Promise的基本使用和原理 介紹一下asyn...
摘要:這里借鑒了一下的處理方式,我們把單獨(dú)模塊的包裝成一個(gè)函數(shù),提供一個(gè)全局的回調(diào)方法,加載完成時(shí)候再調(diào)用回調(diào)函數(shù)。 前端路由實(shí)現(xiàn)之 #hash 先上github項(xiàng)目地址: spa-routers運(yùn)行效果圖showImg(https://segmentfault.com/img/bVFi7l?w=581&h=312); 背景介紹 用了許多前端框架來做spa應(yīng)用,比如說backbone,ang...
閱讀 728·2021-08-17 10:11
閱讀 1594·2019-08-30 11:15
閱讀 1017·2019-08-26 13:54
閱讀 3502·2019-08-26 11:47
閱讀 1212·2019-08-26 10:20
閱讀 2816·2019-08-23 18:35
閱讀 1213·2019-08-23 17:52
閱讀 1297·2019-08-23 16:19