瀏覽器內(nèi)核和js引擎

瀏覽器內(nèi)核分為兩種:渲染引擎和js引擎胆绊。

渲染引擎:負責(zé)網(wǎng)頁內(nèi)容(html/xml/圖像)间影,整理訊息(例如加入css)鹰贵,以及網(wǎng)頁的顯示方式晴氨,內(nèi)核不同,頁面展示方式也不同碉输。

js引擎:是解析javascript語言籽前,執(zhí)行js語言實現(xiàn)頁面的動態(tài)效果。

最開始渲染引擎和js引擎并沒有很嚴格的區(qū)分,后來js引擎越來越獨立聚假,內(nèi)核則傾向于只指渲染引擎块蚌,內(nèi)核的種類很多,常見的內(nèi)核有四種:Trident / Gecko / Blink / Webkit


內(nèi)核對比

Trident內(nèi)核

俗稱IE內(nèi)核膘格,老得Triden內(nèi)核(Ie6)當(dāng)年市場份額很大峭范,所以大量的網(wǎng)頁時專門為老Trident內(nèi)核編寫,但是這些代碼并不符合w3c規(guī)范瘪贱。于是符合w3c規(guī)范標準的網(wǎng)頁在老Trident內(nèi)核下出現(xiàn)了偏差纱控。

之后新的Trident內(nèi)核被Ie9使用,對w3c的標準支持好了很多菜秦。

相關(guān)瀏覽器:

ie6,ie7,ie8(Trident4.0) ie9(Trident 5.0) ie10(Trident 6.0)

世界之窗甜害,360瀏覽器(Trident+chrome內(nèi)核) 遨游2.0(3.0開始使用webkit內(nèi)核)


Gecko內(nèi)核

基于Gecko內(nèi)核的瀏覽器并不多見,出了一些簡單的改動和重新編譯球昨,深度定制的還是很少見尔店。

相關(guān)瀏覽器:

fireFox


webkit內(nèi)核

由khtml內(nèi)核發(fā)展而來,遵守w3c標準主慰。

相關(guān)瀏覽器:

safari / chrome( 以前是webkit嚣州,現(xiàn)在是Blink) / android 默認瀏覽器

Blink內(nèi)核

google開發(fā),chrome的內(nèi)核是由webkit內(nèi)核改為Blink內(nèi)核共螺。

相關(guān)瀏覽器:

chrome


js引擎



js引擎對比


js引擎執(zhí)行機制


前提该肴,請先記住兩點:

1.js是單線程的。

2.js event loop 就是js引擎的執(zhí)行機制藐不。


任務(wù)隊列

單線程就意味著匀哄,所有的任務(wù)需要排隊處理。當(dāng)前一個任務(wù)結(jié)束后雏蛮,才能執(zhí)行下一個任務(wù)涎嚼,如果前一個任務(wù)消耗了很長時間,那下一個任務(wù)就只能一直等著底扳。

于是

所有任務(wù)分為兩種:1.同步任務(wù)铸抑。2.異步任務(wù)。


結(jié)果:1? 3? 2

同步任務(wù):指的是在主線程上排隊執(zhí)行的任務(wù)衷模,只有前一個任務(wù)結(jié)束鹊汛,才執(zhí)行下一個任務(wù)。

異步任務(wù):不進入主線程阱冶,而是進入任務(wù)隊列(task queue)刁憋,只有task queue 通知主線程,某個異步任務(wù)可以執(zhí)行了木蹬,才回被放到主線程執(zhí)行至耻。

js引擎執(zhí)行機制如下:

(1)所有同步任務(wù)都在主線程上,形成一個執(zhí)行棧。

(2) 主線程外尘颓,還有一個task queue走触,只要異步任務(wù)有了運行結(jié)果,就在task queue中放置一個事件疤苹。

(3)當(dāng)執(zhí)行棧所有同步任務(wù)之行結(jié)束后互广,系統(tǒng)會讀取 task queue,看看里面有哪些事件卧土,于是這些異步任務(wù)惫皱,結(jié)束等待狀態(tài),進入執(zhí)行棧尤莺,開始執(zhí)行旅敷。

(4)主線程不斷重復(fù)第三步。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末颤霎,一起剝皮案震驚了整個濱河市媳谁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌友酱,老刑警劉巖韩脑,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異粹污,居然都是意外死亡,警方通過查閱死者的電腦和手機首量,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門壮吩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人加缘,你說我怎么就攤上這事鸭叙。” “怎么了拣宏?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵沈贝,是天一觀的道長。 經(jīng)常有香客問我勋乾,道長宋下,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任辑莫,我火速辦了婚禮学歧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘各吨。我一直安慰自己枝笨,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著横浑,像睡著了一般剔桨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上徙融,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天洒缀,我揣著相機與錄音,去河邊找鬼张咳。 笑死帝洪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的脚猾。 我是一名探鬼主播葱峡,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼龙助!你這毒婦竟也來了砰奕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤提鸟,失蹤者是張志新(化名)和其女友劉穎军援,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體称勋,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡胸哥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赡鲜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片空厌。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖银酬,靈堂內(nèi)的尸體忽然破棺而出嘲更,到底是詐尸還是另有隱情,我是刑警寧澤揩瞪,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布赋朦,位于F島的核電站,受9級特大地震影響李破,放射性物質(zhì)發(fā)生泄漏宠哄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一喷屋、第九天 我趴在偏房一處隱蔽的房頂上張望琳拨。 院中可真熱鬧,春花似錦屯曹、人聲如沸狱庇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽密任。三九已至颜启,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浪讳,已是汗流浹背缰盏。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淹遵,地道東北人口猜。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像透揣,于是被迫代替她去往敵國和親济炎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355