做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

分析JS單線程異步io回調(diào)的特性

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:24:38
文檔

分析JS單線程異步io回調(diào)的特性

分析JS單線程異步io回調(diào)的特性:我們最開始接觸javascript應(yīng)該大部分是從html中的js腳本開始,但是這種看似簡單的語言稀里糊涂的用了好幾年,也沒有搞清楚它的一些原理機(jī)制,有沒有躺槍! 起碼javascript在操作dom的時(shí)候用了各種事件回調(diào),比如按鈕,鏈接的點(diǎn)擊,鼠標(biāo)經(jīng)過,獲取焦點(diǎn)等等. 在這個(gè)
推薦度:
導(dǎo)讀分析JS單線程異步io回調(diào)的特性:我們最開始接觸javascript應(yīng)該大部分是從html中的js腳本開始,但是這種看似簡單的語言稀里糊涂的用了好幾年,也沒有搞清楚它的一些原理機(jī)制,有沒有躺槍! 起碼javascript在操作dom的時(shí)候用了各種事件回調(diào),比如按鈕,鏈接的點(diǎn)擊,鼠標(biāo)經(jīng)過,獲取焦點(diǎn)等等. 在這個(gè)

我們最開始接觸javascript應(yīng)該大部分是從html中的js腳本開始,但是這種看似簡單的語言稀里糊涂的用了好幾年,也沒有搞清楚它的一些原理機(jī)制,有沒有躺槍!

起碼javascript在操作dom的時(shí)候用了各種事件回調(diào),比如按鈕,鏈接的點(diǎn)擊,鼠標(biāo)經(jīng)過,獲取焦點(diǎn)等等.

在這個(gè)過程中,我們在dom上綁定一個(gè)事件回調(diào)函數(shù) 比如 onclick="doCheck()" 這個(gè)過程就是給dom元素注冊了一個(gè)click 事件,并且綁定了一個(gè)事件回調(diào)函數(shù) doCheck().

當(dāng)鼠標(biāo)點(diǎn)擊這個(gè)元素的時(shí)候,觸發(fā)了事件,馬上執(zhí)行事件綁定函數(shù)并回.

再后來是接觸到j(luò)query 的時(shí)候,大量的

$("#id").click(function(){
alert('點(diǎn)擊事件');
});

這種jquery的語法寫的越來越多似乎已經(jīng)習(xí)慣了,但是你是都留意過前面的選擇器只是選擇過濾dom節(jié)點(diǎn),接著的click就是一個(gè)事件注冊,而里面的 function(){} 其實(shí)是一個(gè)參數(shù),事件綁定函數(shù)的參數(shù),這里面就要求你熟悉javascript的語法了.

function在javascript中是一個(gè)對象,對象就可以指世界的萬事萬物,所以對象可以包含很多屬性,方法等.

既然是對象,那就可以當(dāng)做一個(gè)參數(shù)去傳遞,這種函數(shù)叫做 高階函數(shù).

而且這種函數(shù)沒有定義名稱對不對,當(dāng)然你可以一個(gè)名稱,然后把名稱傳過來也是一樣的,但是沒有意義,因?yàn)檫@里的函數(shù)對象其實(shí)是一個(gè)形參,所以我們習(xí)慣的不給這種函數(shù)起名字,這就是常說的匿名函數(shù).

接著上面的$("#id").click 說起,當(dāng)點(diǎn)擊事件被觸發(fā)時(shí),就要執(zhí)行事件綁定函數(shù).和上面直接在dom上給定onclick方法是一樣的效果.

假設(shè)瀏覽器里有多個(gè)線程去操作腳本的話,你能想象到他的亂嗎? 線程一正要去修改元素A的value值,結(jié)果沒想到線程二已經(jīng)把元素A從dom樹刪除節(jié)點(diǎn),這時(shí)線程一只好操作失敗報(bào)錯(cuò).這樣的情況是不糟透了,要么瀏覽器無維護(hù)多個(gè)線程數(shù)據(jù)的一致性,要么前端工程師自己去維護(hù),所以......瀏覽器只有一個(gè)線程去操作dom,這樣省去了很多不必要的麻煩.

setTimeout(function(){
alert('彈出');
},300);

while(true){
	........
}

你覺得 300毫秒后 alert('彈出') 還有戲嗎?

沒有了,永遠(yuǎn)沒有戲了,等待300毫秒只是騙取你的感情的.因?yàn)闉g覽器是單線程模式執(zhí)行腳本.

一旦線程處于死循環(huán)模式下去執(zhí)行 while 語句,你的setTimeout 再也不會(huì)起任何作用了.

進(jìn)而我們走入了 node.js 世界,它完全保留了javascript在瀏覽器的特性,單線程異步回調(diào),也正是因?yàn)檫@個(gè)特點(diǎn)它才是它,假如node.js 是一門同步語言,就算所有的npm包都是 c++ 擴(kuò)展的(速度夠快吧)再快你也比不過c語言處理速度是不是,那么node.js可能還沒有出世就已經(jīng)被php鄙視了.

正是因?yàn)樗漠惒交卣{(diào)IO,更能提高他的效率,讓我想起以前學(xué)校的一種快餐店和學(xué)校食堂的對比情況:

食堂是所有學(xué)生拿著盤子在窗口排成一字型隊(duì),打飯的妹妹一個(gè)一個(gè)盛好了,挨個(gè)端上飯走了.這是同步處理結(jié)果.

學(xué)校快餐店也是學(xué)生排隊(duì)點(diǎn)餐,但是點(diǎn)完餐拿上你的呼叫器就可以離開找位置去了.這樣單位時(shí)間內(nèi)服務(wù)員可以為很多人提供服務(wù),而且點(diǎn)好餐的同學(xué)可以找位置做自己其他事情,而不用傻傻地站到窗口等飯,直到你的飯出來的那一剎那,服務(wù)器會(huì)根據(jù)單號按下編碼,這時(shí)你桌上的呼叫器會(huì)響起,你去取餐就好了.這是異步處理.那個(gè)呼叫器響起就是觸發(fā)事件.

單線程可以減少多線程之間狀態(tài)切換引起的資源浪費(fèi)和維護(hù)困難,當(dāng)然也有專門的第三方包來支持多核多線程的情景,你可以自己權(quán)衡.

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

分析JS單線程異步io回調(diào)的特性

分析JS單線程異步io回調(diào)的特性:我們最開始接觸javascript應(yīng)該大部分是從html中的js腳本開始,但是這種看似簡單的語言稀里糊涂的用了好幾年,也沒有搞清楚它的一些原理機(jī)制,有沒有躺槍! 起碼javascript在操作dom的時(shí)候用了各種事件回調(diào),比如按鈕,鏈接的點(diǎn)擊,鼠標(biāo)經(jīng)過,獲取焦點(diǎn)等等. 在這個(gè)
推薦度:
標(biāo)簽: js 回調(diào) 分析
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 府谷县| 武川县| 长汀县| 金华市| 丰都县| 维西| 泽普县| 临安市| 五大连池市| 通州区| 元氏县| 凉城县| 门头沟区| 军事| 阜康市| 隆尧县| 丰宁| 塔城市| 祁门县| 分宜县| 石台县| 行唐县| 东方市| 南丹县| 保靖县| 佛坪县| 普定县| 三台县| 汝城县| 大冶市| 界首市| 宁陕县| 诸暨市| 甘谷县| 古丈县| 航空| 贵港市| 荥阳市| 太仆寺旗| 观塘区| 淮阳县|