web前端面試題@十三(瀏覽器渲染頁面的原理及流程定罢、call,apply和bind的區(qū)別及擴(kuò)展)

一笤虫、瀏覽器渲染頁面的原理及流程

瀏覽器將域名通過網(wǎng)絡(luò)通信從服務(wù)器拿到html文件后,如何渲染頁面呢?

1.根據(jù)html文件構(gòu)建DOM樹和CSSOM樹琼蚯。構(gòu)建DOM樹期間酬凳,如果遇到JS,阻塞DOM樹及CSSOM樹的構(gòu)建遭庶,優(yōu)先加載JS文件宁仔,加載完畢,再繼續(xù)構(gòu)建DOM樹及CSSOM樹峦睡。

2.構(gòu)建渲染樹(Render Tree)翎苫。構(gòu)建渲染樹,根據(jù)渲染樹計(jì)算每個(gè)可見元素的布局榨了,并輸出到繪制流程煎谍,將像素渲染到屏幕上。

(渲染樹(Render Tree)由DOM樹龙屉、CSSOM樹合并而成呐粘,但并不是必須等DOM樹及CSSOM樹加載完成后才開始合并構(gòu)建渲染樹。三者的構(gòu)建并無先后條件转捕,亦非完全獨(dú)立作岖,而是會(huì)有交叉,并行構(gòu)建五芝。因此會(huì)形成一邊加載痘儡,一邊解析,一邊渲染的工作現(xiàn)象枢步。)

3.頁面的重繪(repaint)與重排(reflow沉删,也有稱回流)。頁面渲染完成后醉途,若JS操作了DOM節(jié)點(diǎn)丑念,根據(jù)JS對(duì)DOM操作動(dòng)作的大小,瀏覽器對(duì)頁面進(jìn)行重繪或是重排结蟋。

? 基本原理如下:

1、瀏覽器內(nèi)核拿到內(nèi)容后渔彰,渲染步驟大致可以分為以下幾步:

2嵌屎、解析HTML,構(gòu)建DOM樹

3恍涂、解析CSS宝惰,生成CSS規(guī)則樹

4、合并DOM樹和CSS規(guī)則再沧,生成render樹(DOM樹和CSSOM樹連接在一起形成render tree .‘渲染數(shù)’)

5尼夺、布局render樹(Layout/reflow),負(fù)責(zé)各元素尺寸、位置的計(jì)算

6淤堵、繪制render樹(paint)寝衫,繪制頁面像素信息

7、瀏覽器會(huì)將各層的信息發(fā)送給GPU拐邪,GPU會(huì)將各層合成(composite)慰毅,顯示在屏幕上


渲染配圖

二、call,apply和bind的區(qū)別及擴(kuò)展

1扎阶、call,apply和bind的區(qū)別

它們?cè)诠δ苌鲜菦]有區(qū)別的汹胃,都是改變this的指向,它們的區(qū)別主要是在于方法的實(shí)現(xiàn)形式和參數(shù)傳遞上的不同东臀。call和apply方法都是在調(diào)用之后立即執(zhí)行的着饥。而bind調(diào)用之后是返回原函數(shù),需要再調(diào)用一次才行惰赋,

2宰掉、總結(jié)一下call,apply谤逼,bind方法:

a:第一個(gè)參數(shù)都是指定函數(shù)內(nèi)部中this的指向(函數(shù)執(zhí)行時(shí)所在的作用域)贵扰,然后根據(jù)指定的作用域,調(diào)用該函數(shù)流部。

b:都可以在函數(shù)調(diào)用時(shí)傳遞參數(shù)戚绕。call,bind方法需要直接傳入枝冀,而apply方法需要以數(shù)組的形式傳入舞丛。

c:call,apply方法是在調(diào)用之后立即執(zhí)行函數(shù)果漾,而bind方法沒有立即執(zhí)行球切,需要將函數(shù)再執(zhí)行一遍。有點(diǎn)閉包的味道绒障。

d:改變this對(duì)象的指向問題不僅有call吨凑,apply,bind方法户辱,也可以使用that變量來固定this的指向鸵钝。

附菜鳥教程https://www.runoob.com/w3cnote/js-call-apply-bind.html,不明的話看一看官方的解釋庐镐,在此不做舉例了恩商。。必逆。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末怠堪,一起剝皮案震驚了整個(gè)濱河市揽乱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌粟矿,老刑警劉巖凰棉,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嚷炉,居然都是意外死亡渊啰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門申屹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绘证,“玉大人,你說我怎么就攤上這事哗讥∪履牵” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵杆煞,是天一觀的道長(zhǎng)魏宽。 經(jīng)常有香客問我,道長(zhǎng)决乎,這世上最難降的妖魔是什么队询? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮构诚,結(jié)果婚禮上蚌斩,老公的妹妹穿的比我還像新娘。我一直安慰自己范嘱,他們只是感情好送膳,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丑蛤,像睡著了一般叠聋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上受裹,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天碌补,我揣著相機(jī)與錄音,去河邊找鬼棉饶。 笑死脑慧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的砰盐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼坑律,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼岩梳!你這毒婦竟也來了囊骤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤冀值,失蹤者是張志新(化名)和其女友劉穎也物,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體列疗,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滑蚯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抵栈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片告材。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖古劲,靈堂內(nèi)的尸體忽然破棺而出斥赋,到底是詐尸還是另有隱情,我是刑警寧澤产艾,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布疤剑,位于F島的核電站,受9級(jí)特大地震影響闷堡,放射性物質(zhì)發(fā)生泄漏隘膘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一杠览、第九天 我趴在偏房一處隱蔽的房頂上張望弯菊。 院中可真熱鬧,春花似錦倦零、人聲如沸误续。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹋嵌。三九已至,卻和暖如春葫隙,著一層夾襖步出監(jiān)牢的瞬間栽烂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工恋脚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腺办,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓糟描,卻偏偏與公主長(zhǎng)得像怀喉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子船响,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 發(fā)送 & 接收信息 數(shù)據(jù)是以“數(shù)據(jù)包”的形式通過互聯(lián)網(wǎng)發(fā)送躬拢,而數(shù)據(jù)包以字節(jié)為單位躲履。當(dāng)你編寫一些 HTML、CSS ...
    mongofeng閱讀 903評(píng)論 0 0
  • 發(fā)送 & 接收信息 數(shù)據(jù)是以“數(shù)據(jù)包”的形式通過互聯(lián)網(wǎng)發(fā)送聊闯,而數(shù)據(jù)包以字節(jié)為單位工猜。當(dāng)你編寫一些 HTML、CSS ...
    IT界中小PQ閱讀 405評(píng)論 0 0
  • 2019.8.131.什么是閉包阮一峰博客閉包就是連接內(nèi)部函數(shù)和外部函數(shù)的橋梁菱蔬,用函數(shù)嵌套實(shí)現(xiàn)內(nèi)部函數(shù)請(qǐng)求到外部函...
    清湯餃子閱讀 1,821評(píng)論 0 12
  • 用戶在使用瀏覽器訪問一個(gè)網(wǎng)站時(shí)需要先通過HTTP協(xié)議向服務(wù)器發(fā)送請(qǐng)求篷帅,之后服務(wù)器返回HTML文件與響應(yīng)信息。這時(shí)拴泌,...
    dosher_多舍閱讀 846評(píng)論 0 1
  • Web前端技術(shù)由 html魏身、css 和 javascript 三大部分構(gòu)成,是一個(gè)龐大而復(fù)雜的技術(shù)體系弛针,其復(fù)雜程度...
    hnscdg閱讀 643評(píng)論 0 0