什麼是非同步(對比同步)
非同步:不會有阻塞
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 ...