非同步和單執行緒

2021-08-04 15:20:11 字數 932 閱讀 3914

什麼是非同步(對比同步)

非同步:不會有阻塞

console.log(100);

settimeout(function () , 1000);

console.log(300);

同步:會阻塞,需要等待確認後才會繼續執行

console.log(100);

alert(200);

console.log(300);

前端使用非同步的場景

何時需要非同步

在可能發生等待的情況

等待過程中不能像alert一樣阻塞程式執行

因此,所有的「等待的情況」都需要非同步

定時任務:settimeout, setinterval

網路請求:ajax請求,動態

事件繫結

ajax請求**示例

console.log('start');

$.get('./data1.json', function (data1) );

console.log('end');

示例console.log('start');

var img = document.createelement('img');

img.onload = function ()

img.src = '/***.png';

console.log('end');

時間繫結示例

console.log('start');

document.getelementbyid('btn1').addeventlistener('click', function () );

console.log('end');

非同步和單執行緒

console.log(100);

settimeout(function () );

console.log(300);

單執行緒和非同步

非同步 async 是相對於同步 async 而言的,同步就是一件事一件事的執行。只有前乙個任務執行完畢,才能執行後乙個任務。當js解析執行時,會被引擎分為兩類任務,同步任務 synchronous 和 非同步任務 asynchronous 對於同步任務來說,會被推到執行棧按順序去執行這些任務。對於...

js 單執行緒 非同步

執行緒與程序 程序是系統資源分配和排程的單元。乙個執行著的程式就對應乙個程序。在windows中,每乙個開啟的執行的應用程式或後台程式,比如執行中的qq,谷歌瀏覽器,網易雲 資源管理器等都是乙個程序。乙個程序包括了執行中的程式和程式所使用到的記憶體和系統資源。比如,邊聽 邊在寫部落格,這 就是開了兩...

JS非同步和單執行緒舉例

js 需要非同步的根本原因是 js 是單執行緒運 的,即在同 時間只能做 件事,不能 個 ajax 請求由於 絡 較慢,請求需要 5 秒鐘。如果是同步,這 5 秒鐘 就卡死在這 啥也做不了了。非同步的話,就好很多了,5 秒等待就等待了,其他事情不耽誤做,於那 5 秒鐘等待是 速太慢,不是因為 js ...