理解js非同步的概念

2022-07-21 12:18:13 字數 568 閱讀 8878

js引擎在執行的時候是單執行緒的,這是大家都知道的。我們先來看一段**:

**:

console.log('async!');

**:

console.log('sync!');

settimeout(

function

(),1000);

大家覺得執行順序是什麼?

輸出:10000-0

sync!

async!

settimout run!

從執行可以看出,主程式是一直在向下執行。settimeout和create js都是非同步操作,會被放到主線程的執行佇列的最後,只有主線程空閒了,才會執行非同步佇列裡的內容。

那麼總結一下,哪些操作是非同步操作呢?

1.ajax

2.settimeout/setinternel

3.websocket

4.非同步載入js

5.dom事件、io輸入

能想到的有這些,有漏掉的再補上!

JS之非同步概念

概念 什麼是js非同步 何時需要非同步 1 需要等待的情況 2 在等待過程中不能像alert一樣阻塞程式執行 3 等待的情況需要非同步 使用場景 1 定時任務settimeout,setinterval console.log 100 settimeout function 1000 非同步執行,非...

非同步和同步概念理解

所謂非同步輸入輸出機制,是指在進行輸入輸出處理時,不必等到輸入輸出處理完畢才返回。所以非同步的同義語是非阻塞 none blocking 舉個例子 普通 b s模式 同步 ajax 技術 非同步 同步 提交請求 等待伺服器處理 處理完畢返回 這個期間客戶端瀏覽器不能幹任何事 非同步 請求通過事件觸發...

關於js非同步載入的理解

最近在除錯 的時候想非同步載入js進去,便查了一下js非同步載入的相關知識,不查不知道,一查受益匪淺,平時沒有注意的好多小細節,竟然有如此大的作用。一直以為bigpipe的原理就是非同步載入那麼簡單,其實不然,最近幾年,為了不讓js的載入影響到網頁的可視性,開始嘗試將js放在底部,而不是一味的放在h...